在学习PHP的同时,我读到了我熟悉的类和接口。
特质,我是新手。它被描述为单独的模块,类似于抽象类,但使用不同的继承方法:trait可能是从其他trait继承,包含在类中。
之前我还没有在其他常见的OO语言中看到过这个功能,所以问题是:
答案 0 :(得分:2)
有时两个没有任何共同点(因此不共享祖先)的类仍然可以从代码重用中受益。
Traits允许您将类中的常用功能提取到特征中,并在其他类中重用它。他们不承担继承的语义权重。
例如,如果您可以在User
和Article
上发表评论,则他们都可以使用Commentable
特征。
此外,它以modules的形式在Ruby中广泛使用。