Вот программа на Java, демонстрирующая многоуровневое наследование:
// Base class
class Animal {
public void eat() {
System.out.println("The animal is eating.");
}
}
// Derived class 1
class Dog extends Animal {
public void bark() {
System.out.println("The dog is barking.");
}
}
// Derived class 2
class Bulldog extends Dog {
public void run() {
System.out.println("The bulldog is running.");
}
}
// Main class
class Main {
public static void main(String[] args) {
Bulldog bulldog = new Bulldog();
bulldog.eat(); // Inherited from Animal class
bulldog.bark(); // Inherited from Dog class
bulldog.run(); // Defined in the Bulldog class
}
}
В этом примере у нас есть три класса: Animal
(базовый класс), Dog
(производный от Animal
) и Бульдог
(производное от Собака
). Каждый класс демонстрирует определенный уровень наследования: Bulldog
наследуется от Dog
, который, в свою очередь, наследуется от Animal
. Метод eat()
определен в классе Animal
и наследуется как от Dog
, так и от Bulldog
. Метод bark()
определен в классе Dog
и наследуется от Bulldog
. Наконец, метод run()
определен в самом классе Bulldog
.
Эта программа демонстрирует концепцию многоуровневого наследования, при которой производный класс наследуется от другого производного класса, который, в свою очередь, наследуется от базового класса.