gpt4 book ai didi

java - 在java中继承时出现重载错误?

转载 作者:行者123 更新时间:2023-11-29 07:01:05 25 4
gpt4 key购买 nike

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub

Animal a=new Animal();
a.speak();

Animal d=new Dog();
d.speak(3);//
}

class Animal
{
public float speak()
{
System.out.println("I am a animal!");
return 0;
}
}

class Dog extends Animal
{
public double speak(int a)
{
System.out.println("Dog sparks!");
return 0;
}
}
}

我刚刚学习了 java 中的覆盖和重载。这里我想做的是实现一个重载。但是编译器显示 d.speak(3) 是错误的。

我认为狗继承了动物。所以它有一个 speak() 函数。我添加了一个 speak(int) 来重载。为什么我错了?谢谢你。

最佳答案

只有 Dog 可以使用 int 参数说话

Dog dog = new Dog();
dog.speak(3);

如果你想调用 speak 作为 Animal 而无需强制转换,那么所有对象的参数列表必须相同

关于java - 在java中继承时出现重载错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26045228/

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