Sobes.tech
Назад к вопросам
Junior — Middle
56

Каким образом можно эмулировать множественное наследование в объектно-ориентированных языках?

Ответ от нейросети

sobes.tech AI

В Java множественное наследование классов напрямую не поддерживается, но его можно эмулировать с помощью интерфейсов и композиции.

  1. Интерфейсы — класс может реализовывать несколько интерфейсов, что позволяет "унаследовать" поведение от нескольких источников.

  2. Композиция — класс содержит объекты других классов и делегирует им вызовы методов, таким образом комбинируя функциональность.

Пример с интерфейсами:

interface Flyable {
    void fly();
}

interface Swimmable {
    void swim();
}

class Duck implements Flyable, Swimmable {
    public void fly() {
        System.out.println("Утка летит");
    }
    public void swim() {
        System.out.println("Утка плавает");
    }
}

Пример с композицией:

class Engine {
    void start() { System.out.println("Двигатель запущен"); }
}

class Car {
    private Engine engine = new Engine();
    void start() {
        engine.start();
        System.out.println("Машина поехала");
    }
}