Który modyfikator dostępu daje dostęp do pola w obrębie klasy oraz w klasach dziedziczących (a nie z zewnątrz)?
A. chroniony
Dobrze. Chroniony (protected) udostępnia pole klasie i klasom dziedziczącym.
B. prywatny
Źle. Prywatny (private) ogranicza dostęp tylko do tej jednej klasy.
C. opublikowany
Źle. „Opublikowany” nie jest standardowym modyfikatorem dostępu.
D. publiczny
Źle. Publiczny (public) daje dostęp zewsząd, także z kodu zewnętrznego.
Modyfikator chroniony (ang.
protected) udostępnia pole lub metodę w obrębie własnej klasy oraz we wszystkich klasach po niej dziedziczących, ale zamyka dostęp dla kodu z zewnątrz. To pośredni poziom między prywatnym a publicznym, przydatny przy projektowaniu hierarchii klas. Dlatego dostęp dla klasy i jej potomków daje modyfikator chroniony.Pozostałe modyfikatory dają inny zakres dostępu lub nie istnieją. Publiczny (public) otwiera pole zewsząd - również dla kodu spoza klasy, więc jest za szeroki w stosunku do pytania. Prywatny (private) działa odwrotnie: zamyka dostęp wyłącznie w jednej klasie, tak że nie sięgną do pola nawet klasy dziedziczące. „Opublikowany” nie jest standardowym kwalifikatorem dostępu. Dostęp w klasie i klasach dziedziczących zapewnia modyfikator chroniony (
protected), dlatego to on jest poprawny.