摘自"Programming In Scala",第12章(关于特征(:
加倍特质有两件有趣的事情发生。首先是它宣布 一个超类,IntQueue。这个声明意味着性状只能是 混合到一个也扩展 IntQueue 的类中。因此,您可以混合加倍 进入 BasicIntQueue,但不进入 Rational。
但是我们可以让我们的类扩展任何类,然后使用"with"关键字混合特征。
但是我们可以让我们的类扩展任何类,然后使用"with"关键字混合特征。
不,你不能。如果您尝试使用此特征:
class X extends Rational with Doubling
您会收到一个错误,因为X
有两个超类:Rational
和 IntQueue
来自 Doubling
。书上是这么说的。
引用书中的这句话:
这个声明意味着性状只能是混合到一个也扩展 IntQueue 的类中。因此,您可以混合加倍到 BasicIntQueue ,但不到 Rational 中。您只能将一个特征与同样继承自混合特征的超类的任何其他类混合。