在课堂上混合特质

时间:2018-04-14 06:04:43

标签: scala traits

来自'Scala编程',第12章(关于特征):

  

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

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

2 个答案:

答案 0 :(得分:2)

  

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

不,你不能。如果你尝试这个特性:

class X extends Rational with Doubling

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

答案 1 :(得分:1)

从书中引用这一行:

此声明表示该特征只能是 混合到一个也扩展 IntQueue 的类中。因此,您可以混合加倍 进入 BasicIntQueue ,但不进入 Rational 。你只能将一个特征与任何其他类混合,这个类也继承了混合特征的超类。