4.10.3 | Ändern der Zugriffsklasse beim Überschreiben |
Beim Überschreiben einer Methode wird man üblicherweise die geerbte Zugriffsklasse beibehalten. Dennoch ist es möglich, sie zu ändern, wenn es erforderlich ist. Hierbei gilt allerdings folgende Grundregel: Der Zugriffsraum darf nur erweitert, nicht aber weiter eingeschränkt werden. Konkret bedeutet dies:Der Grund hierfür liegt darin, dass es möglich sein muss, an eine Referenz auf eine Klasse auch Exemplare aller Unterklassen zuzuweisen. Demzufolge muss die Unterklasse nach außen hin mindestens alles das zur Verfügung stellen, was auch die Oberklasse zur Verfügung stellt. Deswegen ist es nicht möglich, den Zugriff beim Überschreiben weiter einzuschränken.
- Als public deklarierte Methoden müssen public bleiben.
- Eine geerbte protected-Methode darf entweder als protected oder als public überschrieben werden.
- Für Methoden, die in der Oberklasse als private definiert sind, darf eine beliebige Zugriffsklasse gewählt werden, da private-Methoden nicht vererbt werden.
- Methoden in der voreingestellten Zugriffsklasse können in dieser bleiben oder als protected oder public überschrieben werden.