gpt4 book ai didi

java - 创建子对象,子构造函数不使用OOP

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

我是 java 初学者,在创建父类的子对象时遇到问题。我不能分享源代码,因为它是一个学校项目;我不想因为作弊而受到指责。但是,我可以编写类似的代码;这样我就可以对我不理解的概念有一个基本的理解。

Java环境:Eclipse

当我尝试在 Test 类中创建子对象时,出现错误(行号中的红色符号)。

我收到的错误消息是“构造函数 Animal(Long, String, Float, String, String) 未定义。然后建议提供两个选项,修改 Animal 构造函数以包含子 Dog 类参数。或者,使用 Animal 和子 Dog 类参数创建一个新的 Animal 构造函数。

我不确定为什么会发生这种情况。我已经仔细检查过,并且在子构造函数中没有收到错误;我正在使用“super()”。我认为 OOP 和 Java 会自动创建一个具有匹配参数模式的子对象。任何帮助将不胜感激。

父类

pubic class Animal {
Long id;
String section;
Float price;

public Animal (Long id, String section, Float price){
this.id = id;
this.section = section;
this.price = price;
}
}

第一类

public class Dog extends Animal {
String name;
String favoriteToy;

public Dog (Long id, String section, Float price, String name, String favoriteToy){
super(id, section, price);
this.name = name;
this.favoriteToy = favoriteToy;
}
}

二年级

public class Bird extends Animal {
String name;
Integer wingSpan;

public Dog (Long id, String section, Float price, String name, Integer wingSpan){
super(id, section, price);
this.name = name;
this.wingSpan = wingSpan;
}
}

测试类

public class Test {

public static void main(String[] args) throws java.lang.Exception{
//I get error here
Animal animal1 = new Animal (Long.valueOf(76532), "Canine", 99.95, "Sparky", "tennis ball");
}
}

最佳答案

您的 Animal 类只有一个构造函数

public Animal (Long id, String section, Float price){

但是你正在调用构造函数

new Animal (Long.valueOf(76532), "Canine", 99.95, "Sparky", "tennis ball");

Animal 不存在此构造函数。这正是编译器告诉您的“构造函数 Animal(Long, String, Float, String, String) 未定义”。存在的是

public Dog (Long id, String section, Float price, String name, Integer wingSpan){

这是 Dog 类的构造函数。您可能想这样称呼那个

new Dog (Long.valueOf(76532), "Canine", 99.95, "Sparky", "tennis ball");

由于 Dog 继承自 Animal,即 Dog 是一个 Animal,您可以将 Dog 引用存储在 Animal 类型的变量中,例如

Animal animal1 = new Dog (Long.valueOf(76532), "Canine", 99.95, "Sparky", "tennis ball");

关于java - 创建子对象,子构造函数不使用OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61356201/

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