完全重写

<?php
class coach
{
   public function __construct()
   {
     echo "欢迎来到~北武堂训练~";
   }
}
 
 
class cj extends coach
{
   public function __construct($name)
   {
     echo "哎哟~好久不见了".$name;
   }
}
$cj = new cj('丁大锅');
?>
 
实例化之后输出结果:
哎哟~好久不见了丁大锅
  • 在原有基础上增强功能(关键表达式:重写功能中 先实现parent::方法名)
<?php
class coach
{
public function __construct()
{
echo "欢迎来到~北武堂训练~";
}
}
class cj extends coach
{
public function __construct()
{
parent::__construct();
echo "今天练点什么?力量训练还是站立式格斗还是地面技术";
}
}
$cj = new cj();
?> 输出结果: 欢迎来到~北武堂训练~今天练点什么?力量训练还是站立式格斗还是地面技术
  • final关键字
final修饰类,意味着该类不能被继承
#错误示例
final class coach
{
public function __construct()
{
echo "欢迎来到~北武堂训练~";
}
}
class cj extends coach
{
public function __construct()
{
parent::__construct();
echo "今天练点什么?力量训练还是站立式格斗还是地面技术";
}
}
$cj = new cj();
?>
输出结果:
Fatal error: Class cj may not inherit from final class (coach)...... final修饰方法,意味着该方法不能被重写
#错误示例
class coach
{
final function __construct()
{
echo "欢迎来到~必图拳馆训练~";
}
}
class xxd extends coach
{
public function __construct()
{
echo "像个男人一样去战斗!";
}
}
$cj = new xxd();
?>

输出结果:
Fatal error: Cannot override final method coach::__construct() in
  • 重写要点
重写的时候权限只能放大,不能缩小
例如父类中的方法修饰符号是public那么子类中的也是public 而不能改成protected 或private等更小的权限
#错误示例
<?php
class coach
{
public function __construct()
{
echo "欢迎来到~必图拳馆训练~";
}
}
class xxd extends coach
{
protected function __construct()
{
echo "像个男人一样去战斗!";
}
}
$cj = new xxd();
?>
输出结果:
Fatal error: Uncaught Error: Call to protected xxd::__construct() from invalid context in #正确示例:
<?php
class coach
{
public function __construct()
{
echo "欢迎来到~必图拳馆训练~";
}
}
class xxd extends coach
{
public function __construct()
{
echo "像个男人一样去战斗!";
}
}
$cj = new xxd();
?>
输出结果:

像个男人一样去战斗!

 

php类知识点滴---类继承的一些原则的更多相关文章

  1. php类知识点滴---类的实例化,构造函数,继承初步

    实例化类----黑科技用法,通过字符串来实例化 class coach { public function __construct() { echo "欢迎光临北武堂"." ...

  2. php类知识点滴---魔术方法,系统在特定时机触发的方法

    __get()获取私有或受保护属性时调用的方法 <?php class coach { private $chairfit = "徐晓冬"; public function ...

  3. IT第十八天 - 类的封装、继承、重载、上周总结★★★

    IT第十八天 上午 封装 1.关键字this,是表示该类在实例化时的对象,即this.表示为该对象的属性 2.类的数据保护,set.get方法的写法规则,为了之后的反射机制的读取数据,set方法中对于 ...

  4. Kotlin——从无到有系列之中级篇(四):面向对象的特征与类(class)继承详解

    如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 在前面的章节中,详 ...

  5. Exception类的学习与继承总结

    日期:2018.11.11 星期日 博客期:023 Exception类的学习与继承总结 说起来我们上课还是说过的!老师提到了报错问题出现主要分Exception和Error两类!第一次遇见这个问题是 ...

  6. Python基础知识:类

    初级篇 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 1.面向对象三大特性 ...

  7. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  8. ECMAScript6 中 类的封装与继承

    ECMASCRIPT6中实现了class关键字,这样使我们更容易也更形象的进行类的操作 <script type="text/javascript"> class OF ...

  9. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)

    [源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...

随机推荐

  1. 智能指针分析及auto_ptr源码

    简介 C++没有内存自动回收机制,对堆内存的管理就是简单的new和delete,每次new出来的内存都需要手动delete释放.但由于忘记.流程复杂或者异常退出等,都有可能导致没有执行delete释放 ...

  2. 2019牛客暑期多校训练营(第六场)-E Androgynos (构造题)

    题目链接:https://ac.nowcoder.com/acm/contest/886/E 题意:给出n,求能否构造一个含n个顶点的简单无向图,且它的补图与它同构. 思路:首先要满足与其补图同构,同 ...

  3. libmkl 学习笔记

    libmkl 学习笔记 1.libkml下载地址为: https://github.com/libkml/libkml/releases 这里下载1.3.0版本 2.编译与安装 mkdir build ...

  4. java23种设计模式之五:代理模式

    一.代理模式介绍 代理模式的定义:就是为一个接品(对象)提供一个代理的对象,并由这个代理对象控制对原对象的访问流程 其中代理又分为:静态代理和动态代理 静态代理:指的是自己要写一个代理类,或者用工具生 ...

  5. FileSystemResource 找不到文件

    环境 Spring 3.2.5.RELEASE 原因 使用 FileSystemResource 加载文件的过程中,发现一个奇怪的现象,路径完全正确,但是找不到文件的情况.可能的原因是文件的路径上有压 ...

  6. redis 工具包

    java通过jedis操作redis(从JedisPool到JedisCluster) redis作为一个缓存数据库,在绝大多数java项目开发中是必须使用的,在web项目中,直接配合spring-r ...

  7. py2和py3之间的不同

    1.print函数 很琐碎,而 print 语法的变化可能是最广为人知的了,但是仍值得一提的是: Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打 ...

  8. ASP.NET使用AJAX应注意IIS有没有.ashx扩展

    项目添加引用AJAX.DLL了:今天将本地做好的一个web程序放到服务器上,居然报告错误了.web程序使用了ajax来往返数据. 检查生成的html语句,有这么两句代码<script type= ...

  9. JavaScript例子2-使一个特定的表格隔行变色

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. MFC下调试 出现 Warning: initial dialog data is out of range.

    在mfc Debug模式下出现"Warning: initial dialog data is out of range."提示..原因是出现在 DDV_MinMaxInt 对应的 ...