Незаконное наследование нескольких признаков
Я хочу наследовать два класса (AbstractA и AbstractB) в некоторой черте C:
abstract class AbstractA
trait A extends AbstractA
abstract class AbstractB
trait B extends AbstractB
trait C extends A with B
Этот код не скомпилирован:
[ошибка] незаконное наследование; суперкласс AbstractA не является подклассом суперкласса AbstractB миксин-черты B
1 ответ
Решение
Вы не можете наследовать от двух разных классов, и, как следствие, вы даже не можете наследовать от двух признаков, наследующих от двух разных классов.
AbstractA AbstractB
| |
| |
A B
\ /
\ /
\ /
\ /
C
Было ли это позволено, C
будет подклассом обоих AbstractA
а также AbstractB
, что является незаконным.
Каков твой сценарий использования?
Черта может иметь абстрактные члены, поэтому вам вообще не нужно наследовать от абстрактного класса.