非法继承多个性状(Illegal inheritance multiple traits)

2019-10-21 07:17发布

我想继承一些特质C上两个班(AbstractA和AbstractB):

abstract class AbstractA
trait A extends AbstractA

abstract class AbstractB
trait B extends AbstractB

trait C extends A with B

此代码不会被编译:

[错误]非法遗传; 超AbstractA不是混入性状B的超类AbstractB的子类

Answer 1:

你不能从两个不同的类继承,并作为一个结果,你甚至无法从两个特点从两个不同的类继承继承。

 AbstractA  AbstractB
    |           |
    |           |
    A           B
     \         /
      \       /
       \     /
        \   /
          C

被这让, C将两个子类AbstractAAbstractB ,这是违法的。


什么是你的使用情况呢?

的性状可以有抽象成员,所以你不应该需要在所有从抽象类继承。



文章来源: Illegal inheritance multiple traits
标签: scala