Подкласс в dart заставляет меня вызывать конструктор суперкласса - PullRequest
0 голосов
/ 08 мая 2020

Я использую язык программирования dart, где у меня есть абстрактный класс Автомобиль и подкласс автомобиль


abstract class Vehicle {

  int _tires;
  String _type;


  Vehicle(int tires,String type) {
    this._tires=tires;
    this._type=type;

  }
}
class car extends Vehicle {

car (int tires, String type)  {
   this._type=type;
   this._tires=tires;
  }

}

Автомобиль и автомобиль в той же библиотеке, но я продолжаю получать ошибку

Суперкласс «Автомобиль» не имеет конструктора с нулевым аргументом. Попробуйте объявить конструктор с нулевым аргументом в «Автомобиль» или явно вызвать другой конструктор в «Транспортном средстве».

Почему я не могу объявить отдельный конструктор в подклассе автомобиля? Заранее спасибо!

1 Ответ

0 голосов
/ 09 мая 2020

Поскольку вы использовали car extends Vehicle, вы объявили, что car является производной версией Vehicle и должен унаследовать реализацию Vehicle. Чтобы унаследовать реализацию Vehicle, вам действительно нужно построить Vehicle, а для этого потребуется вызвать конструктор базового класса Vehicle.

Если вы хотите, чтобы car предоставил свой собственная, независимая реализация из Vehicle, тогда вам следует использовать car implements Vehicle. Это означает, что car соответствует интерфейсу Vehicle , но реализует все самостоятельно. Обратите внимание, что это означает, что car потребуется предоставить собственные члены int _tires и String _type.

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