Sobes.tech
Junior — Middle

Може ли да се каже, че наследяването спомага за реализирането на полиморфизма в обектно-ориентираното програмиране?

sobes.tech AI

Отговор от AI

Да, наследяването е един от ключовите механизми, които допринасят за реализирането на полиморфизма в обектно-ориентираното програмиране. Полиморфизмът позволява обектите от различни класове да се обработват чрез единен интерфейс, а наследяването осигурява възможност за създаване на йерархии от класове, където подкласовете могат да презапишат методите на базовия клас.

Например, ако има базов клас Животно с метод издадеЗвук(), а подкласовете Куче и Котка презаписват този метод, тогава може да работите с обекти на тези класове чрез препратка към базовия клас и да извикате метода издадеЗвук(), получавайки различно поведение:

class Животно {
    void издадеЗвук() {
        System.out.println("Някакъв звук");
    }
}

class Куче extends Животно {
    @Override
    void издадеЗвук() {
        System.out.println("Лае");
    }
}

class Котка extends Животно {
    @Override
    void издадеЗвук() {
        System.out.println("Мяу");
    }
}

// Използване
Животно ж = new Куче();
ж.издадеЗвук(); // Ще изведе "Лае"