Вот программа на 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.
Эта программа демонстрирует концепцию многоуровневого наследования, при которой производный класс наследуется от другого производного класса, который, в свою очередь, наследуется от базового класса.