在类中混合特征



摘自"Programming In Scala",第12章(关于特征(:

加倍特质有两件有趣的事情发生。首先是它宣布 一个超类,IntQueue。这个声明意味着性状只能是 混合到一个也扩展 IntQueue 的类中。因此,您可以混合加倍 进入 BasicIntQueue,但不进入 Rational。

但是我们可以让我们的类扩展任何类,然后使用"with"关键字混合特征。

但是我们可以让我们的类扩展任何类,然后使用"with"关键字混合特征。

不,你不能。如果您尝试使用此特征:

class X extends Rational with Doubling

您会收到一个错误,因为X有两个超类:RationalIntQueue 来自 Doubling 。书上是这么说的。

引用书中的这句话:

这个声明意味着性状只能是混合到一个也扩展 IntQueue 的类中。因此,您可以混合加倍BasicIntQueue ,但不到 Rational 中。您只能将一个特征与同样继承自混合特征的超类的任何其他类混合。

最新更新