Strona główna › Pytania INF.04 › Pytanie 152
INF.04 · pytanie #152
Modyfikator dostępu znajdujący się przed definicją metody Dodaj() w klasie Kalkulator sprawia, że: <pre class="code-block">protected void Dodaj() {}</pre>
- Ajest ona dostępna zarówno w samej klasie, jak i w klasach dziedziczących po klasie Kalkulator
- Bnie jest ona dostępna z poziomu klas, które są zaprzyjaźnione z klasą Kalkulator
- Cjest ona możliwa do wykorzystania w programie głównym i można ją wywołać na instancji klasy Kalkulator
- Dnie jest ona osiągalna w klasach, które dziedziczą po klasie Kalkulator
Poprawna odpowiedź: A. jest ona dostępna zarówno w samej klasie, jak i w klasach dziedziczących po klasie Kalkulator
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Modyfikator protected w językach takich jak C# czy Java oznacza, że metoda jest dostępna zarówno w tej samej klasie, jak i w każdej klasie, która po niej dziedziczy — niezależnie od tego, w którym miejscu projektu ta klasa pochodna się znajduje. To jest bardzo praktyczne, bo pozwala pisać tzw. szkieletowe klasy bazowe, udostępniając pewne funkcjonalności tylko klasom potomnym, a jednocześnie ukrywając je przed kodem zewnętrznym. Takie podejście umożliwia budowanie bezpiecznych i elastycznych struktur dziedziczenia, gdzie konkretne działania mogą być modyfikowane lub rozszerzane tylko tam, gdzie trzeba. Bardzo często spotyka się protected w dużych projektach, gdzie kluczowe funkcje mają być używane wyłącznie w rodzinie klas, a nie dostępne dla całego świata. Moim zdaniem, to świetny sposób na wymuszanie architektury i porządku w kodzie, no bo wiadomo, jak każdy miałby dostęp do wszystkiego, to zaraz byłby bałagan. Przykład praktyczny: pisząc klasę bazową Kalkulator, możesz mieć protected Dodaj(), a publicznie udostępnić tylko ogólną metodę Oblicz(). Dzięki temu masz większą kontrolę, co i jak jest wykorzystywane. Branżowo przyjęło się, że protected to taki złoty środek pomiędzy public a private, gwarantując odpowiednią enkapsulację i możliwość dziedziczenia. Warto to stosować świadomie, żeby potem nie mieć niespodzianek w dużych projektach.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.