关于超类和继承

问题描述 投票:0回答:1
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'没有零参数构造函数”。我想为从Car for Electric Car继承的属性分配不同的值。我该怎么做?

inheritance dart superclass
1个回答
0
投票

由于您是从Car扩展而来的,因此需要在ElectricCar内部调用Car的构造函数。我不确定您的实际需求,但可以如果您想向ElectricCar添加更多属性,但仍然希望能够设置numberOfSeat,请执行以下操作:

class ElectricCar extends Car {
  int power;

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

[重要的是您需要用Car的构造函数调用ElectricCar的构造函数,因为Car的构造函数是知道如何初始化CarElectricCar部分的代码。

© www.soinside.com 2019 - 2024. All rights reserved.