Создание дочернего объекта, дочерний конструктор не используется OOP - PullRequest
0 голосов
/ 22 апреля 2020

Я новичок в 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");
   }
}

1 Ответ

0 голосов
/ 22 апреля 2020

Пример здесь хорош; Моя проблема заключалась в том, что шаблоны параметров не совпадали в моей локальной системе. Спасибо за помощь!

...