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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
用定制的PHP应用程序来获取Web服务器的状态信息
Oct 09 PHP
PHP+DBM的同学录程序(2)
Oct 09 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
php获取数据库中数据的实现方法
Jun 01 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+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
python调用API实现智能回复机器人
2018/04/10 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
对python调用RPC接口的实例详解
2019/01/03 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
投资意向书范本
2014/04/01 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
婚礼家长致辞
2015/07/27 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL