8

据我所知,Groovy 已经有 mixins,Scala 有 Trait。C家族具有多重继承。那么为什么 Java 中的新功能被称为“扩展方法”呢?只是同一件事的不同名称,还是有其他原因?trait 和 mixin 有什么区别?他们增加了什么,缺乏什么?


就我个人而言,我将它们视为“实现方法”而不是“扩展方法”。

4

1 回答 1

7

那么为什么 Java 中的新功能被称为“扩展方法”呢?

AFAIK,这个命名来自 C#。虚拟扩展方法仅适用于方法,而 mixin 和特征也适用于字段。

通过虚拟扩展方法进行接口演变 注意:Brian 自己称它们为“Defender 方法”,但我认为“虚拟扩展方法”得到了更广泛的认可。

JVM 语言峰会 2011 - Brian Goetz我很确定这是他谈论为什么它有它的名字的地方。

于 2013-06-11T09:54:48.407 回答