最近有人告诉我Scala的特质不是“真正的”特质,而实际上只是mixin。不幸的是,我没有机会问他为什么。有人知道他的意思吗?
编辑: 作为“特质”的定义,我一直在参考Nathanael Schärli介绍特质的论文和概念论文。大多数mixin和/或多重继承实现缺少的一个关键特性是在导入方法时重命名以避免冲突/歧义。Scala能做到吗?
最近有人告诉我Scala的特质不是“真正的”特质,而实际上只是mixin。不幸的是,我没有机会问他为什么。有人知道他的意思吗?
编辑: 作为“特质”的定义,我一直在参考Nathanael Schärli介绍特质的论文和概念论文。大多数mixin和/或多重继承实现缺少的一个关键特性是在导入方法时重命名以避免冲突/歧义。Scala能做到吗?
.mro()
方法来查找其MRO。在Scala中没有相应的方法。不,Scala 无法在导入时重命名。
我想知道这该怎么做。如果 trait T
的方法 m
在对象 o
中被重命名为 m2
,那么如果 p
是类型为 T
的参数,并且通过它传递了 o
,那么如何解析 p.m
?