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 相关文章推荐
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
php中的比较运算符详解
Oct 28 PHP
将php数组输出html表格的方法
Feb 24 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python 调试冷知识(小结)
2019/11/11 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
表彰先进集体通报
2014/01/12 职场文书
家教广告词
2014/03/19 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
岗位说明书怎么写
2014/07/30 职场文书
雷锋电影观后感
2015/06/10 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
python pygame 开发五子棋双人对弈
2022/05/02 Python