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 Куче();
ж.издадеЗвук(); // Ще изведе "Лае"