zoukankan      html  css  js  c++  java
  • trait优先级 与 使用

        之前一直沒有讲到trait,在此我不得不提一下trait中的优先级:

           在trait继承中,优先顺序依次是:来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法。

           For example: 

        class A{
        public function sayHello(){
        echo "A";
        }
        }
        
        trait B{
        public function sayHello(){
           parent::sayHello();
        echo "B";
        }
        }
        
        class C extends A{
        use B;
        }
        
        $c=new C();
        $c->sayHello();

       上述打印结果是:AB

        class A{
        public function sayHello(){
        echo "A";
        }
        }
        
        trait B{
        public function sayHello(){
           parent::sayHello();
        echo "B";
        }
        }
        
        class C extends A{
        use B;
        public function sayHello(){
        echo "C";
        }
        }
        
        $c=new C();
        $c->sayHello();

        此打印结果为:C

    trait 一般写不适合或不方便写在父类,子类又需要重复实现或使用的方法,如Model,Repositories层,或者某横向扩展业务的公共方法

  • 相关阅读:
    初识spring
    关于导入别人的web项目,tomcat无法显示的问题
    doPost无法跳转显示信息,只能下载文件查看
    socket网络编程
    log日志文件
    第三方模块安装
    __name__ __doc__ __package__
    格式化
    导入模块
    python正则表达式补充
  • 原文地址:https://www.cnblogs.com/cxscode/p/9573918.html
Copyright © 2011-2022 走看看