完全重写

<?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. 菜鸟系列k8s——快速部署k8s集群

    快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...

  2. 使用Java实现hello/hi的简单网络聊天程序

    Socket又称套接字,是基于应用服务与TCP/IP通信之间的一个抽象,它是计算机之间进行通信的一种约定或一种方式.通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送 ...

  3. 强大的strace命令用法详解

    文章转自: https://www.linuxidc.com/Linux/2018-01/150654.htm strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和 ...

  4. [转帖]关于Java中SQL语句的拼接规则

    关于Java中SQL语句的拼接规则 自学demo 的时候遇到的问题 结果应该是 '"+e.getName()+"' 注意 一共有三组标点符号 (除去 方法函数后面的括号) 实现目标 ...

  5. ES简介及特点

    1.ES是什么? ES是一个高度可伸缩的开源的全文检索和分析引擎,它允许你以近实时的方式快速存储.搜索.分析大量数据,ES是基于Lucence开发,隐藏其复杂性,提供了简单易用的restful api ...

  6. hdu 4471 区间条件统计 区间 不超过 x 的元素的个数

    题目传送门//res tp hdu 目的 对长度为n的区间,m次询问,每次提供一个区间两端点与一个值x,求区间内不超过x的元素个数 n 1e5 m 1e5 ai [1,1e9] (i∈[1,n]) 多 ...

  7. python虚拟环境的的使用

    基于创建虚拟环境 virtualenv 安装 pip3 install virtualenv 通过virtulaenv创建虚拟环境 virtualenv luffycity --python=C:\P ...

  8. 树莓派驱动开发 helloworld

    编写Makefile ifneq ($(KERNELRELEASE),) obj-m := MiniX.o else KDIR := /home/hi/pi/kernel/linux/ all: ma ...

  9. 并不对劲的复健训练-p5212 SubString

    题目大意 有一个串\(s\),一开始只知道它的一个前缀.有\(q\)(\(q\leq 10^4\))个操作,操作有两种:1.给一个字符串,表示\(s\)(\(s\)总长\(\leq 6\times 1 ...

  10. Spring boot data jpa 示例

    一.maven pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...