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

  • 相关阅读:
    连接mysql遇到的问题
    洛谷 P3369 【模板】普通平衡树(Treap/SBT)
    开博啦
    luogu【P2753】[USACO4.3]字母游戏Letter Game
    luogu【P3377】 【模板】左偏树
    POJ-2251
    HDU-1518
    Coderforces-455A
    UVA-1608
    Coderfocers-551C
  • 原文地址:https://www.cnblogs.com/cxscode/p/9573918.html
Copyright © 2011-2022 走看看