gpt4 book ai didi

java - 如何在 Java 中正确重写?

转载 作者:行者123 更新时间:2023-12-01 16:39:08 25 4
gpt4 key购买 nike

在我的父类(super class)中,我有以下方法:

public int getSpeed(String t)
{
return 0;
}

在我的子类中,我用以下方法覆盖了该方法:

public int getSpeed(String t)
{
return x;
}

然后我有以下内容:

ArrayList<super> //contains only objects of the subclass
for (super s:collection)
{
s.getSpeed("");
}

这总是返回 0。我如何让它返回 x?

<小时/>

编辑:我的代码几乎完全按照 Bala R 的解决方案所示编写,但是我只是对我的 X 做了一些愚蠢的事情,导致它每次都舍入为 0。因此他的解决方案是正确的。

最佳答案

也许子类中的 x 实际上为零或未初始化?

我刚刚尝试过(Ideone link)

import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws java.lang.Exception {

new Main();
}

Main(){
ArrayList<Super> list = new ArrayList<Super>();
list.add(new Sub());
list.add(new Sub());
list.add(new Sub());
for (Super s:list)
{
System.out.println(s.getSpeed(""));
}
}
}

class Super {
public int getSpeed(String t) {
return 0;
}
}

class Sub extends Super {
@Override
public int getSpeed(String t) {
return 1;
}

}

输出是

1
1
1

关于java - 如何在 Java 中正确重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892207/

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