在 Kotlin我们将有可能创建一个“可能需要在调用端扩展类的特征”,例如
class Bar {}
trait T1 : Bar {}
class Foo : Bar, T1, T2, T3 {}
class Wrong : T1, T2 //error: Wrong should extend Bar
我无法想象可以应用这种结构的任何流程。谁能告诉我为什么我们需要它?
最佳答案
我认为这样做的主要原因是允许 trait 使用具体类中定义的方法和属性。想象一下,Bar
有一些基本方法,可以在此基础上构建其他便利方法......通过让 trait 要求它用于 Bar
的子类,你可以在 trait 中定义调用该方法的方法。然后,您可以通过为许多子类提供 trait 来将这些方法提供给它们。
关于oop - 了解 Kotlin 中的特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457505/