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 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
PHP把网页保存为word文件的三种方法
Apr 01 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP图片加水印实现方法
May 06 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
thinkPHP交易详情查询功能详解
Dec 02 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
再次研究下cache_lite
2007/02/14 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
vue实现评论列表功能
2019/10/25 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
python pandas时序处理相关功能详解
2019/07/03 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
文员岗位职责
2013/11/09 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
中学生评语大全
2014/04/18 职场文书
大学生简历求职信
2014/06/24 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers