В чем разница между "класс 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

Другие вопросы по тегам