完全重写

<?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. WijmoJS 支持模板字符串常量

    WijmoJS 支持模板字符串常量 在V2019.0 Update2 的全新版本中,WijmoJS 支持了模板字符串常量. 模板字符串是ES2015 / ES6中引入的一个非常棒的JavaScript ...

  2. 【LOJ】#3032. 「JOISC 2019 Day1」馕

    LOJ#3032. 「JOISC 2019 Day1」馕 处理出每个人把馕切成N段,每一段快乐度相同,我们选择第一个排在最前的人分给他的第一段,然后再在未选取的的人中选一个第二个排在最前的切一下,并把 ...

  3. 剑指offer9:青蛙变态跳台阶,1,2,3……,n。

    1. 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 2. 思路和方法 每个台阶都有跳与不跳两种情况(除了最后一个台阶),最后 ...

  4. Analyzing Polyline -- Codeforces Round #123 (Div. 2)

    题意:https://codeforc.es/problemset/problem/195/D 求折线段数. 思路: 对pos进行sort,对不同区间段加k,两个dp处理不同k>0 or k&l ...

  5. gitignore忽略处理

    .gitignore文件内容 忽略所有文件夹 /*/ 忽略所有文件 /* 这时  git add  已经失效 需要使用  git add -f  强制添加文件进版本库 好处在于在本地添加文件文件夹时, ...

  6. 从入门到自闭之Python--MySQL数据库的操作命令

    命令: mysqld install; 配置数据库 net start mysql;启动数据库 mysql -uroot -p; 以root权限启动数据库,-p之后输入密码 mysql -uroot ...

  7. element-ui table float类型数据排序失败

    背景:对于16.88这样的数据,点击表头排序无效,仍然是乱序 解决办法:自定义排序方法,:sortable="true" :sort-mothod="xxxx" ...

  8. Js 更换html同一父元素下子元素的位置

    //更换两个元素的位置 var exchange=function (el1, el2) { var ep1 = el1[0].parentNode, ep2 = el2[0].parentNode, ...

  9. 【原创】大叔经验分享(56)hue导出行数限制

    /opt/cloudera/parcels/CDH/lib/hue/apps/beeswax/src/beeswax/conf.py # Deprecated DOWNLOAD_CELL_LIMIT ...

  10. 不支持javascript的浏览器将JS脚本显示为页面内容

    不支持javascript的浏览器将JS脚本显示为页面内容.为了防止这种情况发生,您可以使用这样的HTML注释标记:<html ><体><script type=“tex ...