Załóżmy istnienie (np. w Javie) definicji klasy bazowej Base i klasy potomnej Child.
Klasa Base udostepnia metody:
- void A()
- void B()
Klasa Child extends Base definiuje zaś tylko:
- void B()
Child child = new Child();
// przykład 1
child.A();
// przykład 2
child.B();
Pytanie starego egzaminatora:
"Koncepcja związana z programowaniem obiektowym, użyta w przykładzie X to?"
a. polimorfizm
b. dziedziczenie
W pierwszym przypadku wywołana zostanie metoda klasy bazowej.
W drugim przypadku wywołana zostanie metoda klasy potomnej, przesłaniająca metodę klasy bazowej.
Dla mnie oba przypadki realizują założenia polimorfizmu, chociaż w pierwszym zadziałało dziedziczenie metody z klasy bazowej.
Jaka jest poprawna odpowiedź?