О суперклассе и наследовании - PullRequest
0 голосов
/ 30 апреля 2020
void main() {
  Car myNormalCar = Car(20);

  print(myNormalCar.numberOfSeat);

  myNormalCar.drive('academia');
}

class Car {
  int numberOfSeat = 40;
  int height = 30;

  Car(int seat) {
    numberOfSeat = seat;
  }

  void drive(String name) {
    print('the wheels turn:$name');
  }
}

class ElectricCar extends Car {}

ElectricCar здесь показывает, что «У суперкласса« Автомобиль »нет конструктора с нулевым аргументом». Я хочу присвоить различные значения свойствам, унаследованным от Car for Electri c Car. Как я могу это сделать?

1 Ответ

0 голосов
/ 30 апреля 2020

Вам нужно вызвать конструктор Car внутри ElectricCar, так как вы расширяетесь от Car. Я не уверен, что вы на самом деле хотите, но вы можете, например, сделать следующее, если вы хотите добавить больше свойств к ElectricCar, но все еще хотите иметь возможность установить numberOfSeat:

class ElectricCar extends Car {
  int power;

  ElectricCar(this.power, int seat) : super(seat);
}

Важная часть Вам нужно вызвать конструктор Car с конструктором ElectricCar, поскольку конструктор Car - это код, который знает, как инициализировать Car часть ElectricCar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...