我想在一些特性C:
中继承两个类(AbstractA和AbstractB)abstract class AbstractA
trait A extends AbstractA
abstract class AbstractB
trait B extends AbstractB
trait C extends A with B
此代码未编译:
[错误]非法继承;超类AbstractA不是它的子类 mixin trait B的超类AbstractB
答案 0 :(得分:3)
你不能从两个不同的类继承,因此你甚至不能从两个不同的类继承两个特征。
AbstractA AbstractB
| |
| |
A B
\ /
\ /
\ /
\ /
C
如果允许,C
将成为AbstractA
和AbstractB
的子类,这是非法的。
无论如何,你的用例是什么?
特征可以包含抽象成员,因此您根本不需要从抽象类继承。