В чем разница между "класс C расширяет A с помощью B" и "класс C расширяет B", когда черта B расширяет черту A
Когда две черты определены так,
trait A
trait B extends A
В чем разница между этими двумя.
class C extends B
class D extends A with B
Я не думаю, что классу C или D необходимо расширять признак A, поскольку признак B уже расширяет признак A.
Почему это часто пишется "класс D расширяет A с B"?
1 ответ
Это довольно хороший вопрос... Я постараюсь ответить субъективным ответом.
Я предполагаю, что расширяется A
смешать с B
важно, когда иерархия будет линеаризована, в этом конкретном случае нет различий, но что если вы смешаете D
с другой чертой E
что переопределяет некоторые (но не все) функции из A, которые не рекомендуется в B
для ваших нужд в D
, Так что вы бы
class D extends A with E with B
Более того, в этом случае мы сохраняем значение D
это A