假设我有一个名为Robot的课程。在Robot类中,我有一个名为Racer的子类。两个名为Swimmer和Runner的子类都扩展了Racer。
Racer(及其所有子代)都有一个名为sprint()的方法。
在另一个类中,我编写了一个名为race的静态类方法,它接受一个Racer参数(或其任何子代)。在竞赛方法中,我使用sprint方法,这也是Racer及其子项独有的。
代码运行成功,但如果我想通过sprint方法传递Robot参数怎么办?什么是允许我将机器人作为赛车手投射的代码?
我试着做
public static void race((Racer) Robot arg) {
//race method here
}
但它不起作用。有什么想法吗?
答案 0 :(得分:0)
方法参数不能进行类型转换。你可以将超类作为参数,这样内部方法你可以基于运行时对象进行类型转换。