最近我一直在努力学习PHP,我发现自己对特性很感兴趣.我理解水平代码重用的概念,不想从抽象类继承.我不明白的是:使用trait 和界面之间的关键区别是什么?
我试着搜索一篇像样的博客文章或文章,解释何时使用其中的一种或另一种,但到目前为止我找到的例子似乎太相似了,以至于完全相同.
最近我一直在努力学习PHP,我发现自己对特性很感兴趣.我理解水平代码重用的概念,不想从抽象类继承.我不明白的是:使用trait 和界面之间的关键区别是什么?
我试着搜索一篇像样的博客文章或文章,解释何时使用其中的一种或另一种,但到目前为止我找到的例子似乎太相似了,以至于完全相同.
接口定义了实现类must实现的一组方法.
当一个特征是use
时,方法的实现也会出现——这在Interface
中不会发生.
这是最大的不同之处.
从Horizontal Reuse for PHP RFC人中:
Traits是PHP等单一继承语言中的代码重用机制.Trait旨在通过使开发人员能够在不同类层次 struct 中的多个独立类中自由重用方法集来减少单一继承的一些限制.