В школе мне задали этот вопрос:
Преамбула: В OOP считается, что класс создается при создании объекта класса. Проанализируйте приведенный ниже рисунок 1 и используйте его для ответа на следующие вопросы.
Используя концепцию наследования и интерфейсов, создайте список классов, объектов и / или интерфейс, указывающий, что:
i. является / являются базовым, родительским или суперклассом (ами). Ответ на это - класс животных II. является производным, дочерним, подклассом (ами). Ответом на это являются классы Bird, Reptile и Fi sh iii. есть / являются интерфейсом (ами). Ответ на этот вопрос - не летать, иначе может скиснуть iv. ключевое слово для реализации наследования. Ответ на этот вопрос - "расширяет" v. Ключевое слово для реализации интерфейсов. Ответ на этот вопрос - реализации.
б) Используя приведенные выше ответы, создайте программу Java OOP, которая создает экземпляры требуемых объектов и вызывает связанные с ними методы.
Для этого вопроса мне удалось написать следующий код:
public class Animal {
public class Animal {
// Properties gender, age, weight
public String gender;
public String age;
public String weight;
// Constructor to inherit for other classes
Animal(String gender, String age, String weight) {
this.gender = gender;
this.age = age;
this.weight = weight;
}
// Methods to inherit
public void sleep() {
System.out.println("Animal can sleep");
}
public void move() {
System.out.println("Animal can move");
}
public void eat() {
System.out.println("Animal can eat");
}
}
//Bird class inherits Animal
class Bird extends Animal {
Bird(String gender, String age, String weight) {
super(gender, age, weight);
}
}
//Reptile Class inherits Animal
class Reptile extends Animal {
Reptile(String gender, String age, String weight) {
super(gender, age, weight);
}
public void leap() {
System.out.println("Frog can leap");
}
Reptile Frog = new Reptile("Male", "1yr", "1kg");
}
//Fish Class inherits Animal
class Fish extends Animal {
Fish(String gender, String age, String weight) {
super(gender, age, weight);
}
Fish Shark = new Fish("Male", "3yrs", "150kg");
}
// Interface Fly
interface abilityToFly {
public void Fly();
}
//Eagle inherits Bird and uses fly ability
class Eagle extends Bird implements abilityToFly {
Eagle(String gender, String age, String weight) {
super("Female", "2yrs", "2kg");
}
@Override
public void Fly() {
System.out.println("It can Fly");
}
}
//Chicken inherits Bird but does not have the ability to fly
class Chicken extends Bird implements abilityToFly {
Chicken(String gender, String age, String weight) {
super("Female", "1yr", "1kg");
}
@Override
public void Fly() {
System.out.println("It can not Fly");
}
}
Я не уверен, правильно ли я сделал это, и может ли кто-нибудь исправить этот код для меня и сообщить мне, как его создать. Спасибо