为什么特质可以扩展抽象类?

时间:2017-10-04 02:34:33

标签: scala

从链接 http://www.scala-lang.org/old/node/117

它给出了一个特征,即特征扩展了一个抽象类。 由于抽象类有构造函数,它怎么可能发生呢?这是否意味着抽象类和特征具有相同的位置?

1 个答案:

答案 0 :(得分:1)

它们用于在类之间共享接口,字段和类型,并且它们都不是可实例化的。抽象类扩展了特征,反之亦然。 但是因为scala中的一个类只能扩展一个超类,

abstract class A
abstract class B
trait AA extends A
class C extends AA // ok  class C's super class is A
class C extends B with AA // NG trying to have 2 super class
就像我在开头提到的那样,它们是不可实例化的。 所以你不需要关心抽象类的构造函数。 当创建并实例化扩展它的类时,将调用它。