(注意:出于明显的原因,我在标题中使用了“错误”而不是“问题”。))。
我对Scala的Traits做了一些基础阅读。它们类似于Java或C#中的接口,但是它们确实允许方法的默认实现。
我在想:这难道不会引起“钻石问题”吗?这就是为什么许多语言首先避免多重继承的原因?
如果是这样,Scala如何处理呢?
分享您的研究成果对所有人都有帮助。告诉我们您尝试过的内容以及为什么它不能满足您的需求。这表明您已花时间尝试自我帮助,这使我们免于重复显而易见的答案,并且最重要的是,它可以帮助您获得更具体和相关的答案。另请参阅“ 如何提问
—
2014年
@gnat:这是一个概念性问题,而不是一个具体的问题。如果他问“我在Scala上这堂课,并且给我我认为可能与钻石问题有关的问题,我该如何解决?” 那么您的评论将是适当的,但随后的问题将属于SO。:P
—
Mason Wheeler 2014年
@MasonWheeler我也对Scala做了一些基础阅读。在我读过的书中对“钻石”的首次搜索给了我答案:“特征具有Java接口构造的所有功能。但是特征可以在其上实现方法。如果您熟悉Ruby,则特征相似对于Ruby的mixins。您可以将多个特征混合到一个类中。特性不能接受构造函数参数,但它们的行为类似于类。这使您能够进行一些处理,而不会出现钻石问题。在这个问题上缺乏努力感到很公然
—
gna 2014年
阅读该声明并不能告诉您如何做。
—
Michael Brown