Jeżeli klasa pochodna dziedziczy po klasie nadrzędnej, to które zdanie dotyczące obiektów jest prawdziwe?
Jeżeli klasa pochodna dziedziczy po klasie nadrzędnej, to które zdanie dotyczące obiektów jest prawdziwe?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź to B. Jest to istota polimorfizmu. Ponieważ klasa pochodna "jest" specyficznym przypadkiem klasy bazowej (relacja is-a), referencja typu ogólnego (bazowego) może bezpiecznie wskazywać na obiekt typu szczegółowego (pochodnego).
Wyjaśnienie pozostałych opcji:
- A – Obiekty klasy pochodnej zazwyczaj zajmują więcej pamięci, ponieważ zawierają pola klasy bazowej plus swoje własne, dodatkowe pola.
- C – Przypisanie przez wartość (tzw. slicing w C++) jest możliwe, ale powoduje utratę danych specyficznych dla klasy pochodnej, więc nie jest to pełnoprawne działanie na obiekcie pochodnym.
- D – Jest to możliwe poprzez rzutowanie (casting).
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Dziedziczenie (Inheritance w OOP)Mechanizm programowania obiektowego pozwalający klasie pochodnej (podrzędnej) na przejęcie pól i metod z klasy bazowej (nadrzędnej) oraz ich rozszerzenie lub modyfikację.
- Polimorfizm (Wielopostaciowość w OOP)Cecha programowania obiektowego pozwalająca na jednakowe traktowanie obiektów różnych klas pochodnych za pośrednictwem wspólnego interfejsu lub klasy bazowej z różną implementacją zachowań.
- Polimorfizm (Polymorphism)Zdolność obiektów różnych klas powiązanych hierarchią dziedziczenia do reagowania na to samo wywołanie metody w specyficzny dla siebie sposób.
Podobne pytania z działu „Dziedziczenie i polimorfizm”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 20 pytań z tego działu.
- #92
Co można powiedzieć o metodach klasy Point?
- #173
Dziedziczenie jest stosowane, gdy istnieje potrzeba
- #207
W przedstawionym kodzie zostało zaprezentowane jedno z podstawowych założeń programowania obiektowego. Jest to
- #237
Odpowiednikami zmiennych i funkcji programowania strukturalnego są w programowaniu obiektowym
- #285
Mechanizm programowania obiektowego w C++, wykorzystujący funkcje wirtualne (z ang. Virtual), który przy wywołaniu metod zwalnia programistę z obowiązku sprawdzenia jaką klasę pochodną aktualnie obsługuje, np. przez wskaźnik nosi nazwę