gpt4 book ai didi

java - 仅当子类强制转换为父类时才调用子类的方法?

转载 作者:行者123 更新时间:2023-12-02 02:21:11 24 4
gpt4 key购买 nike

假设我有一个类(class)火车,两个子类城际类和短跑运动员类,它们都是火车的类型。现在假设我想打印火车列表。当它是 Intercity 时,应打印 Intercity;当它是 sprinter 时,应打印 sprinter。

我认为这意味着我在 Intercity 和 sprinter 中创建了一个打印方法。然而,当程序通过火车列表进行迭代时,java 坚持在火车类中创建一个打印方法。

那么我该如何应对这个问题呢?我想到创建 print 方法,检查它是否是 intercity 或 sprinter 的实例,然后将其转换为相应的类型,然后调用该类型的 print 方法。

但是我想成为一名更好的程序员,这对我来说似乎不是最好的解决方案。

所以我的问题是应该如何处理上述情况?

最佳答案

您在 Train 父类(super class)中创建一个 print 方法,并在子类中重写它。这样,您就不必在打印之前检查 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 ()
{

}

}

关于java - 仅当子类强制转换为父类时才调用子类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48484883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com