位置: 编程技术 - 正文
推荐整理分享PHP中子类重载父类的方法【parent::方法名】(php方法重载),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php子类获取父类对象,php 子类重写父类protected有什么限制,子类重载父类方法,php 子类重写父类protected有什么限制,php 子类重写父类protected有什么限制,php中子类最多可以继承几个父类,php子类调用父类方法,php 子类重写父类protected有什么限制,内容如对您有帮助,希望把文章链接给更多的朋友!
在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载。单在子类中可以定义和父类重名的方法,因为父类的方法已经在子类中存在,这样在子类中就可以把从父类中继承过来的方法重写。
子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法,父类中的方法被子类继承过来不就可以直接使用吗?为什么还要重载呢?因为有一些情况我们必须要覆盖的。例如,有一个“鸟”类,在这个类中定义了鸟的通用方法“飞翔”。将“鸵鸟”类作为它的子类,就会将“飞翔”的方法继承过来,但只要一调用“鸵鸟”类中的这个“飞翔”的方法,鸵鸟就会飞走。虽然鸵鸟是不会飞的,但其他特性都具有“鸟类”的特性,所以在声明“鸵鸟”类时还是可以继承“鸟”类的,但必须在“鸵鸟”类中将“鸟”类中继承过来的“飞翔”方法改写,就需要在子类中重载父类中的方法。
在下面的例子中,声明的Person类中有一个“说话”方法,Student类继承Person类后可以直接使用“说话”方法。但Person类中的“说话”方法只能说出它自己的成员属性,而Student类对Person类进行了扩展,多添加了几个新的成员属性。代码如下所示:
改程序运行后输出的结果为:
我的名字叫:张三,性别:男,我的年龄是:,在edu学校上学
在PHP中,提供了在子类重载的方法中调用父类被覆盖方法的功能。这样就可以在子类重写的方法中,继续使用从父类继承过来并被覆盖的方法,然后再按要求多添加一些新功能。调用的格式是使用“parent:方法名”在子类的重载方法中调用父类中被覆盖的方法。将上例中的代码修改一下,在子类重写的构造方法中使用“parent::__construct()”调用父类中被覆盖的构造方法,再多添加一条对子类中新扩展的成员属性初始化的代码。在子类中重写的say()方法中使用“parent::say()”调用父类中被覆盖的say()方法,再添加上输出子类成员属性的功能。
代码如下所示:
上面的例子输出的结果和前一个例子是一样的,但在本例中通过在子类中直接调用父类中被覆盖的方法要简便很多。另外,在子类覆盖父类的方法时一定要注意,在子类中重写的方法访问权限一定不能低于父类被覆盖的方法的访问权限。例如,如果父类中的访问权限是protected,那么在子类中重写的方法的权限就要是protected或public。
以上内容是小编给大家介绍的PHP中子类重载父类的方法【parent::方法名】的相关内容,希望对大家有所帮助!如果大家想了解更多资讯,敬请关注积木网网站!
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间 PHP前言:动态地创建属性和方法对象的复制对象的比较加载指定的文件自动加载类文件命名空间示例1、类的相关知识点3(动态地创建属性和方法)class/
一波PHP中cURL库的常见用法代码示例 php的CURL是不错的功能,下面收藏几段不错的片段0、基本例子一般流程:$to_url=$_GET['url'];print_r($_GET);if(substr($to_url,0,1)=='/'){$to_url="
PHP检测链接是否存在的代码实例分享 在PHP中,检查某个链接是否存在,有两个方法,一个是使用curl,另外一个是获得HTTP的header的响应码,如果是的则是OK,如果是的话就找不到了,例子如下:1)使
标签: php方法重载
本文链接地址:https://www.jiuchutong.com/biancheng/293602.html 转载请保留说明!上一篇:PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
下一篇:PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间(php动态变量)
友情链接: 武汉网站建设