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() ще се изпълни в зависимост от реалния тип на обекта — това е полиморфизм.