W pakiecie zdefiniowano jedynie klasy Samochod i Ciezarowka. Dla przedstawionego kodu Java, aby pole przebieg mogło być zastosowane w metodzie WypiszDane (w klasie pochodnej), ale nie było dostępne poza metodami klas Samochod i Ciezarowka, w miejscu znaków zapytania należy zastosować kwalifikator dostępu:
W pakiecie zdefiniowano jedynie klasy Samochod i Ciezarowka. Dla przedstawionego kodu Java, aby pole przebieg mogło być zastosowane w metodzie WypiszDane (w klasie pochodnej), ale nie było dostępne poza metodami klas Samochod i Ciezarowka, w miejscu znaków zapytania należy zastosować kwalifikator dostępu:
class Samochod {
??? int przebieg = 100000;
}
class Ciezarowka extends Samochod {
public void WypiszDane() {
System.out.println("Przebieg samochodu: " + przebieg);
}
}Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź to A. Modyfikator protected sprawia, że składowa klasy jest widoczna w tej samej klasie, w klasach dziedziczących (nawet w innych pakietach) oraz w klasach z tego samego pakietu. Spełnia to wymóg dostępności w Ciezarowka (klasa pochodna) i ukrycia przed światem zewnętrznym (poza pakietem/dziedziczeniem).
Wyjaśnienie pozostałych opcji:
- B (public): Pole byłoby dostępne dla każdej klasy w projekcie, co narusza warunek „nie było dostępne poza...”.
- C (private): Pole byłoby dostępne tylko w klasie
Samochod. KlasaCiezarowkanie miałaby do niego dostępu, co spowodowałoby błąd kompilacji w metodzieWypiszDane. - D (final): To nie jest modyfikator dostępu, lecz modyfikator uniemożliwiający zmianę wartości zmiennej po inicjalizacji.
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
- Modyfikatory dostępu (Access Modifiers)Słowa kluczowe definiujące widoczność i zakres dostępności składowych klasy (pól, metod, właściwości).
- 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').
Podobne pytania z działu „Enkapsulacja i modyfikatory dostepu”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 8 pytań z tego działu.
- #99
W metodach klasy GoldCustomer są widoczne jedynie pola
- #125
Modyfikator dostępu poprzedzający definicję metody Dodaj() zdefiniowanej w klasie Kalkulator powoduje, że:
- #139
Założenie programowania obiektowego polegające na ukrywaniu składowych klasy tak, aby były one dostępne tylko metodom tej klasy lub funkcjom zaprzyjaźnionym, to
- #212
Jaki kwalifikator należy nadać metodzie, aby dostęp do niej był możliwy tylko z ciała tej klasy i klas potomnych, a jednocześnie, żeby ta metoda nie była dostępna w dowolnej funkcji?
- #295
Które zdanie jest zgodne z informacjami o funkcjach zaprzyjaźnionych przedstawionych we fragmencie dokumentacji?