🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# trait ## 定义: > Traits是一种为类似PHP的单继承语言而准备的代码复制机制。Traits为了减少单继承语言的限制,是开发人员能够自由地在不同的层次结构内独立的类中复用方法集。Traits和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类相关的典型问题。 > Traits和一个类相似,但仅仅旨在用细粒度和一致的方式来组合功能。Traits不能通过它自身来实例化。它为传统继承增加了一个水平特性的组合;也就是说,应用类的成员不需要继承。 ## 代码: ~~~ trait my_code{ function getSum($n1,$n2){ return $n1+$n2; } function getSub($n1,$n2){ return $n1-$n2; } } class A{ } class B extends A{ use my_code; } class C extends A{ use my_code; } $a = new A(); $demo2 = new B(); echo $a->getSum();//出错,没有use echo $demo2->getSum(1,2);//输出3 ~~~ ## trait的细节 > 1. 优先级: > 从基类继承的成员被trait插入的成员所覆盖。优先顺序是来自当前类的成员覆盖了trait的方法,而trait则覆盖了被继承的方法。 >