Рассмотрим следующий фрагмент кода:
void main() {
Band myBand = new Band();
myBand.guitar();
print("Number of players " + myBand.players.toString());
}
class Rock {
int players=2;
void guitar() {
print('Rock guitar');
}
}
mixin Jazz {
int players=1;
void guitar() {
print('Jazz guitar');
}
}
class Band extends Rock with Jazz {
}
Здесь у меня есть класс Band , который расширяет Rock и миксин Jazz . Оба имеют свойство и метод с одним и тем же именем - players
и guitar
.
Если я теперь создаю подкласс Band и вызываю метод guitar
или запрашиваю у игрока property
, я получаю:
Джаз-гитара Количество игроков 1
Очевидно, по какой-то причине миксин имеет большее значение. Что мне нужно сделать, чтобы вызвать свойства или методы расширяющего класса Rock , а не из mixin, из моего подкласса myBand ?