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 相关文章推荐
论坛头像随机变换代码
Oct 09 PHP
php google或baidu分页代码
Nov 26 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
php + WebUploader实现图片批量上传功能
May 06 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编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python基础教程项目二之画幅好画
2018/04/02 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
幼儿教师自我鉴定
2013/11/02 职场文书
临床医学应届生求职信
2013/11/06 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
党章培训心得体会
2014/09/04 职场文书
厉行节约工作总结
2015/08/12 职场文书
勤俭节约主题班会
2015/08/13 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
python 镜像环境搭建总结
2022/09/23 Python