Który modyfikator dostępu daje dostęp do pola w obrębie klasy oraz w klasach dziedziczących (a nie z zewnątrz)?
Źle. Publiczny (public) daje dostęp zewsząd, także z kodu zewnętrznego.
Źle. Prywatny (private) ogranicza dostęp tylko do tej jednej klasy.
Dobrze. Chroniony (protected) udostępnia pole klasie i klasom dziedziczącym.
Źle. „Opublikowany” nie jest standardowym modyfikatorem dostępu.
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.