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 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
php和js交互一例-PHP教程,PHP应用
Jan 03 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP实现登录验证码校验功能
May 17 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 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
关于页面优化和伪静态
2009/10/11 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
Prototype Class对象学习
2009/07/19 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
浅谈python字符串方法的简单使用
2016/07/18 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
体育教育专业毕业生自荐信
2013/11/15 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
交通事故责任认定书
2015/08/06 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书