Sobes.tech
Junior — Middle

Czy można powiedzieć, że dziedziczenie sprzyja realizacji polimorfizmu w programowaniu obiektowym?

sobes.tech AI

Odpowiedź od AI

Tak, dziedziczenie jest jednym z kluczowych mechanizmów przyczyniających się do realizacji polimorfizmu w programowaniu obiektowym. Polimorfizm pozwala na obsługę obiektów różnych klas za pomocą wspólnego interfejsu, a dziedziczenie umożliwia tworzenie hierarchii klas, w których podklasy mogą nadpisywać metody klasy bazowej.

Na przykład, jeśli istnieje klasa bazowa Zwierzę z metodą wydajDźwięk(), a podklasy Pies i Kot nadpisują tę metodę, to można pracować z obiektami tych klas przez odwołanie do klasy bazowej i wywołać metodę wydajDźwięk(), uzyskując różne zachowania:

class Zwierzę {
    void wydajDźwięk() {
        System.out.println("Jakiś dźwięk");
    }
}

class Pies extends Zwierzę {
    @Override
    void wydajDźwięk() {
        System.out.println("Szczeka");
    }
}

class Kot extends Zwierzę {
    @Override
    void wydajDźwięk() {
        System.out.println("Miauczy");
    }
}

// Użycie
Zwierzę z = new Pies();
z.wydajDźwięk(); // Wypisze "Szczeka"