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

  • 相关阅读:
    点子
    evil idea
    ubuntu 10.04.3 modify source.list
    点子
    ubuntu常用软件安装
    架构技术介绍网站
    点子
    点子
    【转发】上海地区工作,全国找网络底层技术开发大牛,旅游方面的创业项目。
    文本相似度计算余弦定理和广义Jaccard系数
  • 原文地址:https://www.cnblogs.com/cxscode/p/9573918.html
Copyright © 2011-2022 走看看