Sobes.tech
Junior — Middle

Обяснете концепцията за полиморфизъм в обектно-ориентираното програмиране и как се реализира в кода.

sobes.tech AI

Отговор от AI

Полиморфизмът в обектно-ориентираното програмиране е способността на обекти от различни класове да реагират по различен начин на едни и същи съобщения (методови извиквания). Това позволява използването на единен интерфейс за работа с различни типове обекти.

В Java полиморфизмът се реализира чрез наследяване и презаписване на методи. Например, базовият клас декларира метод, а подкласовете го реализират по свой начин.

Пример:

class Animal {
    void sound() {
        System.out.println("Някакъв звук");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Лае");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Мяука");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();
        a1.sound(); // Ще изведе "Лае"
        a2.sound(); // Ще изведе "Мяука"
    }
}

Тук променливата от тип Animal може да сочи към обекти от различни подкласове, а извикването на метода sound() ще се изпълни в зависимост от реалния тип на обекта — това е полиморфизм.