php构造方法中析构方法在继承中的表现


Posted in PHP onApril 12, 2016

本文为大家分享了php构造方法之析构方法在继承中的表现,供大家参考,具体内容如下

子类中没有定义构造方法时,会自动调用父类的构造方法。因此实例化子类时,需按照父类的构造方法的形式进行。

php构造方法中析构方法在继承中的表现

修改为:

php构造方法中析构方法在继承中的表现

子类定义了自己的构造方法,则不会自动调用父类的构造方法,但可以手动调用:parent::__construct();php构造方法中析构方法在继承中的表现

但通常,在子类,很多时候,在构造方法中,都应该(需要)去调用父类的构造方法以节省代码,增加可读性:

php构造方法中析构方法在继承中的表现

子类中没有定义析构方法时,会自动调用父类的析构方法。子类定义了自己的析构方法,则不会自动调用父类的析构方法,但可以手动调用:parent::__destruct()。重写override

重写又叫覆盖,就是将从父类继承下来的属性或方法重新“定义”——就是从新写。

php构造方法中析构方法在继承中的表现

但注意:子类覆盖父类的方法,虽然可以去调用父类的同名方法去完成一定的工作,但不是必须的。也有可能父类的该方法所执行的结果并不适合子类,此时子类就去完全自己写了。

重写的基本要求:

访问控制权限:下级的访问控制权限应该不低于上级的访问控制权限:上级:public 下级:只能public上级:protected 下级: protected, public上级:private 下级:private protected public——实际此情况无意义。私有的不能覆盖,而是完全当作自己全新的。

方法的参数形式:应该跟父类的一致。

php构造方法中析构方法在继承中的表现

php构造方法中析构方法在继承中的表现

私有属性和私有方法的重写问题:私有属性和方法都不能覆盖,但其实子类可以定义跟父类私有的同名属性或方法。只是当作一个自身的新的属性或方法来看待而已。不过方法的参数必须一致。构造方法的重写问题:构造方法不但可以像其他普通方法一样重写,而且,比普通方法更宽松:重写的时候参数可以不一致。

php构造方法中析构方法在继承中的表现

最终类final class:

通常,一个类,没有特别声明的话,则“别人”就可以随意拿过来使用并对之进行“扩展”——继承。

但是:

如果某个类不希望对其进行扩展,则可以将其声明为“最终类”。

形式:

final class 类名{ 。。。。类定义。。。。}

最终方法final method

通常,一个方法,如果没有特别声明,则下级类就可以对其进行“覆盖”(重写)。

但是:

如果某个方法不希望被下级类覆盖,就可以对其生命为“最终方法”。

形式:

final function 方法名(){。。。。方法定义。。。。}

以上就是本文的全部内容,希望对大家的学习有所帮助。

PHP 相关文章推荐
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
解析CodeIgniter自定义配置文件
Jun 18 PHP
ThinkPHP分页实例
Oct 15 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
Zend Framework常用校验器详解
Dec 09 PHP
自制PHP框架之模型与数据库
May 07 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
php设计模式之职责链模式定义与用法经典示例
Sep 19 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 PHP
解决php扩展安装不生效问题
Oct 25 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
如何用Laravel包含你自己的帮助函数
May 27 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 #PHP
ThinkPHP框架里隐藏index.php
Apr 12 #PHP
PHP 绘制网站登录首页图片验证码
Apr 12 #PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 #PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 #PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 #PHP
PHP实现的浏览器检查类
Apr 11 #PHP
You might like
PHP数据过滤的方法
2013/10/30 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
node实现简单的反向代理服务器
2017/07/26 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
Python 面向对象部分知识点小结
2020/03/09 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
如何提高MySql的安全性
2014/06/19 面试题
高中体育教学反思
2014/01/29 职场文书
财务出纳岗位职责
2014/02/03 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
实名检举信范文
2015/03/02 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers