了解Kotlin的特质

在Kotlin中,我们有可能创建一个“可能需要在呼叫方扩展类的特征”,比如

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

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

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

Interesting Posts