Groovy中的特性,继承和接口,何时使用?


10

我正在学习groovy,我刚刚了解了2.3中添加的新功能,即Traits的添加。现在对我来说,特质似乎可以让您完成超类和接口可以做的所有事情。

在Groovy中添加特性会否使继承和接口过时?

如果不是,那么使用这些机制的最佳时间是什么?



“ groovy,我刚刚了解了2.3中添加的新功能,这是Traits的添加”-Traits首先通过称为Groovy ++ booster的AST插件添加到2.0 Groovy之前,请参见code.google.com/p / groovypptest / wiki / Traits
Vorg van Geir 2014年

您应该真正阅读有关特征的文档。如果不提及这些文档所谈论的一切,这里给出的答案将是不完整的。您应该特别注意第13部分-结束
smac89 '19

Answers:


4

特性结合了两全其美的优点-(抽象)类的继承和接口的实现。一个特征可以包含方法的默认实现,而一个类型可以一次实现多个特征。这允许某种多重继承,但是以一种很好的方式避免了致命的死亡

如果您不知道如何开始,请使用特征。您获得了灵活性,可以在以后根据需要切换到接口或类继承。


3
在接口中,您可以定义默认方法,那么逻辑上的区别是什么?
吉拉德·巴鲁奇安

我也对特征和接口默认方法之间的差异感到困惑。我只能假定groovy中的特征早于Java中的默认方法引入了
olyv

特征允许您定义常规字段,而不仅仅是静态字段,因为java的接口将您限制为
smac89

如果您对特质感到困惑,请阅读docs。他们的信息非常丰富
smac89

1
@ smac89,谢谢,这真的很有帮助!
olyv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.