Я увидел код ниже online, и конструктор подкласса вызывает конструктор суперкласса перед инициализацией его собственной переменной (то есть public int seatHeight
) после изменения порядка инициализации, т.е. поставив seatHeight = startHeight;
до super(startCadence, startSpeed, startGear);
, моя IDE отображает сообщение об ошибке. Я просто задавался вопросом, в чем причина вызова конструктора суперкласса, прежде чем подкласс может инициализировать свою собственную переменную? И каковы некоторые из правил, регулирующих инициализацию суперкласса и подкласса?Почему подкласс должен вызвать конструктор суперкласса, прежде чем подкласс может инициализировать свою собственную переменную
public class MountainBike extends Bicycle {
public int seatHeight;
public MountainBike(int startHeight, int startCadence,
int startSpeed, int startGear) {
super(startCadence, startSpeed, startGear);//when change order with seatHeight = startHeight, IDE display error
seatHeight = startHeight;
}
public void setHeight(int newValue) {
seatHeight = newValue;
}
}