説明が必要だと思うので、いくつかのコードを投稿してから質問します。したがって、これが私のスーパークラスの基本的な表現です。
public abstract class ModeOfTransport {
public abstract void updateView(String name);
}
以下は、私のサブクラスの例です。
public class Bus extends ModeOfTransport {
@Override
public void updateView(String stopName) {
System.out.println("BUS");
}
}
public class Train extends ModeOfTransport {
@Override
public void updateView(String stopName) {
System.out.println("TRAIN");
}
}
switch
のどのバージョンが呼び出されるかを決定できるようにするための がありますupdateView()
。
switch(transportType) {
case BUS:
handleInfo(new Bus());
break;
case TRAIN:
handleInfo(new Train());
break;
default:
break;
}
private void handleInfo(ModeOfTransport transportType) {
transportType.updateView(name);
}
私の目標は、またはのいずれかを印刷することTRAIN
ですBUS
。現時点では、何も印刷されません。本体を持たない親クラスの抽象メソッドを呼び出しているためだと思います。
誰かが私のためにこれに光を当てることができますか?
また、余談ですが、これは に該当しますpolymorphism
かinheritance
?
ありがとう!