Sobes.tech
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.