Heim  >  Artikel  >  Java  >  Die Auswirkungen von Java-Funktionszugriffsmodifikatoren und Methodenüberschreibungen

Die Auswirkungen von Java-Funktionszugriffsmodifikatoren und Methodenüberschreibungen

王林
王林Original
2024-04-26 09:27:01837Durchsuche

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).

Java 函数的访问权限修饰符之与方法重写的影响

Die Auswirkungen von Java-Funktionszugriffsmodifikatoren und Methodenüberschreibungen

Zugriffsmodifikatoren steuern die Zugänglichkeit von Java-Methoden. Es gibt vier Arten von ihnen:

  • public: überall zugänglich
  • protected: zugänglich innerhalb desselben Pakets und derselben Unterklassen
  • default (kein expliziter Modifikator): zugänglich innerhalb desselben Pakets
  • private : Zugriff nur innerhalb der Klasse möglich

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() 方法也必须是 protectedpublic。将其设置为 public 符合方法重写的要求,因为它具有比父类方法更宽的访问权限。

运行这两个类将打印以下输出:

Child class show()

这是因为 Child 类中的重写方法被调用,因为它具有更宽的访问权限(publicrrreee

Aufgrund des 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn