php的学习笔记之面向对象(四)继承补充
2016-03-09 22:37
681 查看
之前说到每次新建一个对象,都会先执行__construct方法,那么在继承的时候,是否先执行父类的_construct方法,再执行子类__construct方法呢?
我们来做一个实验:
输出结果如下:
child has constructed
说明在创建子类的时没有调用父类的__construct方法,这是为什么呢,原来这是用到php中的重写(overwrite)这样的机制,子类的构造函数实际上是覆盖(override)了父类的构造函数,这时执行的是该子类的构造函数。
那么如果子类不写__construct方法会发生什么事呢?我们来实验一下:
;
输出结果为:dd
说明父类的__construct()没有被继承。
我们来做一个实验:
class Father{ public function __construct(){ echo "father has constructed"; } } class Child{ public function __construct(){ echo "child has constructed"; } } $c = new Child();
输出结果如下:
child has constructed
说明在创建子类的时没有调用父类的__construct方法,这是为什么呢,原来这是用到php中的重写(overwrite)这样的机制,子类的构造函数实际上是覆盖(override)了父类的构造函数,这时执行的是该子类的构造函数。
那么如果子类不写__construct方法会发生什么事呢?我们来实验一下:
class Father{ public function __construct(){ echo "father has constructed"; } } class Child{ public function show(){ echo "dd"; } } $c = new Child(); $c->show(); 输出结果为:dd
;
输出结果为:dd
说明父类的__construct()没有被继承。
相关文章推荐
- php跳转
- php之跳转
- php curl (get post)
- php的学习笔记之面向对象(四)继承
- 会员中心增加会员登录次数显示功能–PHPCMS V9
- phpcmsV9后台审核内容增加删除修改内容选项!
- PHP时间函数详解
- PHPCMSV9的CKEDITOR编辑器增加行距
- Phpcms v9 审核文章功能只能超级管理员审核吗?
- Phpcms v9搜索结果不全及搜索不到内容和搜索结果排序问题
- php正则
- php操作xml
- php中的继承
- ubuntu NTP 配置
- PHP常用函数
- PHP 单引号和双引号的区别
- 用PHP实现n的阶乘--高精度算法
- ThinkPHP上传返回 “文件上传保存错误!”
- 在PHP中利用wsdl创建标准webservice的实现代码 SoapDiscovery.class.php
- php 文件上传图片