Przejdź do treści głównej
INF.04Pytanie #504 z 856dziedziczenie-i-polimorfizm

Na przedstawionym schemacie znajdują się klasy połączone dziedziczeniem, gdzie poziom I to klasa bazowa a pozostałe klasy są jej potomkami. Należy zdefiniować metodę, która będzie się różniła dla samochodów osobowych i ciężarowych oraz na przyszłość wymusić utworzenie takiej metody dla dowolnej klasy poziomu II. Zgodnie z zasadami programowania obiektowego należy umieścić metodę

Opcje odpowiedzi:
A
jedynie we wszystkich klasach poziomu III, zależnie od tego czy są to samochody osobowe czy ciężarowe.
B
jedynie w klasach Osobowy i Ciężarowy.
C
jako abstrakcyjną w klasach II poziomu.
D
jako abstrakcyjną w klasie bazowej i jej implementacje w klasach Osobowy i Ciężarowy.
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź to D. Aby wymusić implementację metody w klasach pochodnych, w klasie bazowej (Poziom I - Samochód) należy zadeklarować metodę jako abstrakcyjną. Następnie, klasy poziomu II (Osobowy i Ciężarowy) muszą dostarczyć konkretną implementację tej metody, ponieważ logika ma być różna dla tych dwóch grup.

Wyjaśnienie pozostałych opcji:

  • A – Umieszczenie metody tylko na poziomie III nie wymusza struktury w klasach nadrzędnych i powoduje duplikację kodu/interfejsu.
  • B – Umieszczenie tylko w poziomie II nie gwarantuje, że klasa bazowa definiuje wspólny interfejs (brak polimorfizmu z poziomu Samochód).
  • C – Jeśli metoda byłaby abstrakcyjna na poziomie II, to klasy Osobowy i Ciężarowy musiałyby być abstrakcyjne, a implementacja spadłaby na poziom III, co jest sprzeczne z wymaganiem zróżnicowania logiki już na poziomie II.

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.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

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.