在方法中转换参数 - Java

时间:2017-05-27 15:17:32

标签: java casting

假设我有一个名为Robot的课程。在Robot类中,我有一个名为Racer的子类。两个名为Swimmer和Runner的子类都扩展了Racer。

Racer(及其所有子代)都有一个名为sprint()的方法。

在另一个类中,我编写了一个名为race的静态类方法,它接受一个Racer参数(或其任何子代)。在竞赛方法中,我使用sprint方法,这也是Racer及其子项独有的。

代码运行成功,但如果我想通过sprint方法传递Robot参数怎么办?什么是允许我将机器人作为赛车手投射的代码?

我试着做

public static void race((Racer) Robot arg) { //race method here }

但它不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

方法参数不能进行类型转换。你可以将超类作为参数,这样内部方法你可以基于运行时对象进行类型转换。