Heim >Java >javaLernprogramm >Die Auswirkungen von Java-Funktionszugriffsmodifikatoren und Methodenüberschreibungen
Die Zugriffsmodifikatoren überschriebener Methoden in Unterklassen müssen gleich oder umfassender sein: Die Zugriffsberechtigungen von Unterklassenmethoden können umfassender sein als die von übergeordneten Klassenmethoden (z. B. von geschützt auf öffentlich geändert). Unterklassenmethoden können keinen stärker eingeschränkten Zugriff haben als Oberklassenmethoden (z. B. von öffentlich nach geschützt).
Die Auswirkungen von Java-Funktionszugriffsmodifikatoren und Methodenüberschreibungen
Zugriffsmodifikatoren steuern die Zugänglichkeit von Java-Methoden. Es gibt vier Arten von ihnen:
Beim Überschreiben einer Methode in einer übergeordneten Klasse muss die überschriebene Methode in der untergeordneten Klasse denselben oder einen breiteren Zugriffsmodifikator haben. Dies liegt daran, dass die überschriebene Methode auf der Methode der übergeordneten Klasse basiert und daher nicht stärker eingeschränkt werden kann als die Methode der übergeordneten Klasse.
Praktischer Fall
Das Folgende ist eine übergeordnete Klasse:
public class Parent { protected void show() { System.out.println("Parent class show()"); } }
Betrachten Sie nun die folgende Unterklasse, die die Methode show()
in der übergeordneten Klasse überschreibt. Beachten Sie, dass der Zugriffsmodifikator der Methode show()
von protected
in public
geändert wurde: show()
方法。注意 show()
方法的访问权限修饰符是从 protected
更改为 public
:
public class Child extends Parent { @Override public void show() { System.out.println("Child class show()"); } }
由于父类的 show()
方法是 protected
的,子类的 show()
方法也必须是 protected
或 public
。将其设置为 public
符合方法重写的要求,因为它具有比父类方法更宽的访问权限。
运行这两个类将打印以下输出:
Child class show()
这是因为 Child
类中的重写方法被调用,因为它具有更宽的访问权限(public
rrreee
der übergeordneten Klasse Die Methode show()
ist geschützt
, und die Methode show()
der Unterklasse muss ebenfalls geschützt
oder öffentlich sein
>. Wenn Sie es auf public
setzen, gilt dies als Methodenüberschreibung, da es einen umfassenderen Zugriff als die Methode der übergeordneten Klasse hat. 🎜🎜Beim Ausführen dieser beiden Klassen wird die folgende Ausgabe ausgegeben: 🎜rrreee🎜Dies liegt daran, dass die überschriebene Methode in der Klasse Child
aufgerufen wird, da sie über einen umfassenderen Zugriff verfügt (public
-Code>). ). 🎜Das obige ist der detaillierte Inhalt vonDie Auswirkungen von Java-Funktionszugriffsmodifikatoren und Methodenüberschreibungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!