Java: Zugriffsmodifikator restriktiver als ‚geschützt‘, weniger restriktiv als ‚privat‘?
-
06-07-2019 - |
Frage
Ich mag etwas ähnliches wie protected
, wo nur eine Klasse, die das protected
Feld und alles implementiert, die es Unterklassen zugreifen kann.
Also, ich mag eine Variable in der Basisklasse als private
erklären zu können, aber dennoch in der Lage sein, darauf zuzugreifen aus einer Unterklasse.
Vielleicht ist dies gegen die Natur der Subklassifizieren, private
und / oder protected
.
Gibt es so etwas wie dieses gibt es in Java?
Lösung
Es gibt nur vier Zugriffsebene für die Felder in Java:
-
private
- Paket-private (Standard, kein Zugriffsmodifikator)
-
protected
-
public
protected
wird Subklassen, andere Klassen im gleichen Paket ermöglichen, und die Mitglieder in der Klasse selbst das protected
Mitglied zugreifen zu können.
Die kurze Antwort ist, gibt es keine Möglichkeit, genau zu erreichen, was gewünscht wird.
Für eine Beschreibung dieser vier Zugriffsmodifikatoren, Kontrolle des Zugriffs auf Die Mitglieder einer Klasse von spezielleren hat Informationen.
Andere Tipps
Wenn Sie die Code-Basis zu steuern, können Sie immer kontrollieren, was in das Paket mit der Basisklasse geht -. Wenn es in seiner Verpackung allein ist, nur Subklassen das Element Sie zugreifen kann, mit Ausnahme Subklassen privat halten
Nein, es gibt keine Zugriffsmodifikator genau das tun. Der protected
Modifikator ist die nächste Sache, aber das macht das Feld zu jeder Klasse in der gleichen Verpackung sowie zu Unterklassen (in oder aus dem gleichen Paket).
Nicht möglich. U kann immer noch Ihre Variablen deklarieren als private dann öffentliche Methoden erklären, die die Variablen ändern in die übergeordnete Klasse. Anschließend rufen Sie die öffentliche Methode auf die Variable.