初学php遇到的第一个有意思的类属性方法

学习看见这个内置常量_TRAIT_ ,菜鸟教程给的解析是"从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。"

那么拿菜鸟教程现成的图来看一下: 

                    

首先,MyHelloWorld (子类)继承Base类的方法及属性,那么Base就是所指的基类(父类),因为trait与use配合使用,也就是说相对于MyHeolloWorld而言SayWord是子类,而此时因为MyHelloWolrd继承了其父类Base的方法与其子类sayWorld的中的方法相同,所以MyHelloWorld中的方法其实就变成了SayWorld中的函数,但是SayWord中又写了 "parent::sayHello()",所以相当于MyHelloWorld又继承了Base中的方法("这里用的parent的原因是可以解决子类与父类方法重名,导致继承于父类的这个方法被覆盖"),那么最后的结果输出就是 Hello World!。

    

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,495评论 1 10
  • 作为一种通用开源脚本语言,PHP可以在不同的平台上运行(Windows、LinuxUnix、MacOS X 等),...
    阳明先生1208阅读 4,476评论 1 4
  • 什么是面向对象? 面向对象是一种先进的编程模型,相对于面向过程编程,面向对象更具有逻辑性,使程序代码更加的健壮、易...
    我爱开发阅读 3,523评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,911评论 1 32
  • <一> 在冬天想起西瓜是很不合时宜的。就像这一阵突然涌上鼻尖的感觉,突然而又困惑,完全不搭界,不合时宜,但我令人费...
    Pa呢阅读 1,166评论 0 2

友情链接更多精彩内容