W przedstawionym kodzie zostało zaprezentowane jedno z podstawowych założeń programowania obiektowego. Jest to
W przedstawionym kodzie zostało zaprezentowane jedno z podstawowych założeń programowania obiektowego. Jest to
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
Przedstawiony kod ilustruje mechanizm dziedziczenia. Widać w nim, jak klasy Truskawka i Jablko są tworzone na bazie już istniejącej klasy Owoc. Słowo kluczowe extends w języku Java (lub : w C# i C++) jest używane właśnie do zdefiniowania relacji dziedziczenia. Dzięki temu, klasy Truskawka i Jablko automatycznie przejmują wszystkie (nieprywatne) cechy i zachowania klasy Owoc, co pozwala na tworzenie hierarchii i ponowne wykorzystanie kodu.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A. Polimorfizm: To zdolność obiektów do przyjmowania różnych form. Aby go zilustrować, potrzebne byłyby metody (np. wirtualne), które są różnie implementowane w klasach pochodnych. W tym kodzie nie ma żadnych metod.
- B. Abstrakcja: Polega na ukrywaniu złożoności implementacji i pokazywaniu tylko niezbędnych cech obiektu. Przykładem mogłaby być klasa abstrakcyjna lub interfejs, czego tutaj nie ma.
- D. Hermetyzacja: To ukrywanie wewnętrznego stanu obiektu (np. przez użycie prywatnych pól). Wszystkie klasy w tym przykładzie są puste i nie mają żadnych pól, więc nie można mówić o hermetyzacji.
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
- Klasa abstrakcyjna (Abstract Class)Klasa bazowa, z której nie można bezpośrednio utworzyć obiektu, służąca jako wzorzec dla klas pochodnych i mogąca zawierać metody abstrakcyjne oraz zaimplementowane.
- 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ę.
- Język programowania JavaW pełni obiektowy język programowania kompilowany do kodu bajtowego (bytecode), wykonywanego przez Wirtualną Maszynę Javy (JVM) zgodnie z regułą WORA ('Napisz raz, uruchamiaj wszędzie').
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
- #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ę
- #355
Przekazywanie zależności do klasy poprzez konstruktor nazywane jest