Junior — Middle
Wyjaśnij koncepcję polimorfizmu w programowaniu obiektowym i jak jest on realizowany w kodzie.
sobes.tech AI
Odpowiedź od AI
Polimorfizm w programowaniu obiektowym to zdolność obiektów różnych klas do reagowania na te same komunikaty (wywołania metod) w różny sposób. Pozwala to na użycie jednolitego interfejsu do pracy z różnymi typami obiektów.
W Javie polimorfizm realizowany jest przez dziedziczenie i nadpisywanie metod. Na przykład, klasa bazowa deklaruje metodę, a podklasy implementują ją na swój sposób.
Przykład:
class Animal {
void sound() {
System.out.println("Jakiś dźwięk");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Szczeka");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("Miauczy");
}
}
public class Main {
public static void main(String[] args) {
Animal a1 = new Dog();
Animal a2 = new Cat();
a1.sound(); // Wypisze "Szczeka"
a2.sound(); // Wypisze "Miauczy"
}
}
Tutaj zmienna typu Animal może odwoływać się do obiektów różnych podklas, a wywołanie metody sound() będzie wykonywać się w zależności od rzeczywistego typu obiektu — to jest polimorfizm.