Java-программа для многоуровневого наследования с примером кода

Вот программа на 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.

Эта программа демонстрирует концепцию многоуровневого наследования, при которой производный класс наследуется от другого производного класса, который, в свою очередь, наследуется от базового класса.