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ę
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ę
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
OsobowyiCiężarowymusiał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.
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ę.
- Dziedziczenie (Inheritance)Mechanizm OOP umożliwiający klasie pochodnej przejęcie pól i metod klasy bazowej oraz ich rozszerzenie lub modyfikację (relacja 'jest rodzajem').
- 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ń.
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ę