我会发布一些代码然后问我的问题,因为我认为它需要一些解释。所以这是我的超类的基本表示:
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
or inheritance
?
谢谢!