8

Kotlin中,我们将有可能创建一个“可能需要在调用端扩展类的特征”,例如

 class Bar {}
 trait T1 : Bar {}
 class Foo : Bar, T1, T2, T3 {}
 class Wrong : T1, T2 //error: Wrong should extend Bar

我无法想象我可以应用这种结构的任何流程。谁能告诉我为什么我们需要它?

4

1 回答 1

8

我认为这样做的主要原因是允许 trait 使用具体类中定义的方法和属性。想象一下,Bar有一些基本方法可以在其之上构建其他便利方法……通过让 trait 要求它用于 的子类Bar,您可以在 trait 中定义调用该方法的方法。然后,您可以通过为许多子类提供特征来将这些方法提供给它们。

于 2011-12-10T16:50:52.650 回答