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初学者(入门学习经验谈)
Oct 12 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
php 保留字列表
Oct 04 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
php之可变函数的实例详解
Sep 13 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHP取进制余数函数代码
2012/01/19 PHP
怎么清空javascript数组
2013/05/11 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
详解Node中导入模块require和import的区别
2017/08/11 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
PyQt5每天必学之组合框
2018/04/20 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
编程用JAVA解析XML的方式
2013/07/07 面试题
企业管理培训感言
2014/01/27 职场文书
个人作风剖析材料
2014/02/02 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
淘宝客服工作职责
2014/07/11 职场文书
导游词范文
2015/02/13 职场文书
教师师德表现自我评价
2015/03/05 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python