gpt4 book ai didi

java - 学习多态性时对错误感到困惑

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

我正在学习多态性,我在我的父类(super class)和子类中得到了这条红线,它在我的代码中被评论:

    public class Animals {
private String name;

public Animals(String name) {
this.name = name;
}

public void changeName(String name){
this.name= name;
}

public String getName(){
return this.name; //
}

}

这是我的子类:

public class Dog extends Animals {
private String colour;

public Dog(String name, String colour){
super(name);
this.colour = colour;
}

public void changeColour(String colour) {
this.colour = colour;
}
public String getColour(){
return this.colour;
}

}

这是带有 main 方法的另一个脚本:

public class AnimalPolyTesting {
public static void main(String[] args) {
Animals puppy = new Dog("homie", "black"); // constructor Dog cannot be applied to given types;
puppy.getName();
(Dog) puppy.getColour(); // not a statement

}
}

我不知道为什么会出现这些红线编辑:代码运行但没有任何结果。Edit2:修复了类。

最佳答案

你的动物类应该是这样的

public class Animals {
private String name;

public Animals(String name) {
this.name = name;
}

public void changeName(String name){
this.name= name;
}

public String getName(){
return this.name;
}

}

您遇到的问题是您的构造函数具有 void 返回类型。构造函数不应该有返回类型。其次,您的 getName() 方法的返回类型为 void。为了让它正常工作,你需要声明它返回的内容。鉴于此,我将让您自行实现其余代码。

关于java - 学习多态性时对错误感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35301935/

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