オーバーライドメソッドを使用したコンストラクタチェーンの実行中に呼び出されるメソッドはどれですか?次の2つのクラスを考えると、MountainBikeオブジェクトを作成するときにどのsetGearメソッドが呼び出されるかを知る必要があります。私の実際のプロジェクトは自転車とは何の関係もありません。クラスをオーバーライドして、スーパークラスのコンストラクターで呼び出される1つのメソッドの動作を変更しようとしていますが、どのように機能するかわかりません...
public class Bicycle {
public int cadence;
public int gear;
public int speed;
public Bicycle(int startCadence,
int startSpeed,
int startGear) {
setGear(startGear);
setCadence(startCadence);
setSpeed(startSpeed);
}
public void setCadence(int newValue) {
cadence = newValue;
}
public void setGear(int newValue) {
gear = newValue;
}
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
}
public class MountainBike extends Bicycle {
public int seatHeight;
public MountainBike(int startHeight,
int startCadence,
int startSpeed,
int startGear) {
super(startCadence, startSpeed, startGear);
seatHeight = startHeight;
}
public void setHeight(int newValue) {
seatHeight = newValue;
}
public void setGear(int newValue) {
if(newValue<4)
gear = newValue;
else{
gear = 4;
}
}
}