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层,或者某横向扩展业务的公共方法

  • 相关阅读:
    jvm的代码缓存耗尽导致性能下降
    几次印象深刻的网上事故
    是时候对十二年的工作回顾了!
    基于GitLab的前端Assets发布体系
    元数据简介
    JSON和JSONP
    Javascript模块规范
    Javascript编程风格
    Require JS
    JavaScript的AMD规范
  • 原文地址:https://www.cnblogs.com/cxscode/p/9573918.html
Copyright © 2011-2022 走看看