假设我有一个班级列车,两个班级城际和短跑运动员,它们是列车的类型。现在说我要打印列车列表。当它是城际时,它会打印城际,当它是短跑运动员时,它会打印短跑运动员。
我认为这意味着我在城际和短跑运动员中创建方法打印。然而,当程序通过火车列表迭代时,java坚持在类列车中创建打印方法。
那么我该如何应对呢?我想创建一个print方法来检查它是一个intercity或sprinter的实例,然后将它转换为相应的类型,然后调用该类型的print方法。
但是我想成为一名更好的程序员,对我来说它看起来不是最好的解决方案。
所以我的问题是如何处理上述情况呢?
答案 0 :(得分:2)
您在print
超类中创建Train
方法,并在子类中覆盖它。这样,您不必在打印之前检查Train
对象的类型,也不需要进行转换。
public class Train {
public void print ()
{
// here you might have a default printing logic, or you could keep this
// method abstract and leave the implementation to the sub-classes
}
}
public class Sprinter extends Train {
@Override
public void print ()
{
}
}
public class InterCity extends Train {
@Override
public void print ()
{
}
}