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+mysql写的简单留言本实例代码
Jul 25 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
详解提高使用Java反射的效率方法
Apr 29 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 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除数取整示例
2014/04/24 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
php实现URL加密解密的方法
2016/11/17 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python版大富翁源代码分享
2018/11/19 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
python中id函数运行方式
2020/07/03 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
视光学毕业生自荐书范文
2014/02/13 职场文书
求职意向书
2014/04/01 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL