Я новичок в java, и у меня возникают проблемы при создании объекта, который является дочерним по отношению к родительскому классу. Я не могу поделиться исходным кодом, потому что это для школьного проекта; и я не хочу, чтобы меня обманули за измену. Но я могу написать похожий код; так что я могу получить фундаментальное понимание концепций, которые я не понимаю.
Java Среда: Eclipse
Когда я пытаюсь создать дочерний объект в моем классе Test, я получаю сообщение об ошибке (этот красный символ в номерах строк).
Я получаю сообщение об ошибке: «Конструктор Animal (Long, String, Float, String, String) не определен. Затем в предложениях предлагается два варианта: изменить конструктор Animal, добавив в него параметры дочернего класса Dog. Или создайте новый конструктор Animal с параметрами класса Animal и child Dog.
Я не уверен, почему это происходит. Я дважды проверил и не получаю ошибок в дочерних конструкторах, и Я использую "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;
}
}
1-й детский класс
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;
}
}
2-й детский класс
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");
}
}