Heim  >  Artikel  >  Java  >  Eine vergleichende Einführung in die Methodenabdeckung und Methodenüberladung in Java

Eine vergleichende Einführung in die Methodenabdeckung und Methodenüberladung in Java

不言
不言nach vorne
2019-02-11 11:13:312345Durchsuche

Dieser Artikel bietet Ihnen eine vergleichende Einführung in die Methodenabdeckung und Methodenüberladung in Java. Ich hoffe, dass er für Freunde hilfreich ist.

Methodensignatur

Die Methodensignatur bezieht sich auf den Parametertyp, die Reihenfolge und die Nummer der Methode. Sie enthält nicht den Methodennamen.

Überladung

Die Überladung muss die folgenden Bedingungen erfüllen

Der Methodenname ist derselbe

Mindestens einer der Parametertypen , Anzahl und Reihenfolge der Methode sind unterschiedlich

Der Rückgabetyp der Methode kann unterschiedlich sein

Der Zugriffsmodifikator der Methode kann unterschiedlich sein

override

Wenn in einer Unterklasse eine Methode definiert ist, deren Name, Rückgabetyp und Parametersignatur genau mit dem Namen, Rückgabetyp und Parametersignatur einer Methode in der übergeordneten Klasse übereinstimmen, überschreibt die Unterklasse die Methode der übergeordneten Klasse Klasse.
Die Überschreibung muss die folgenden Bedingungen erfüllen:

Der Name, die Parametersignatur und der Rückgabetyp der Unterklassenmethode müssen mit der Methode der übergeordneten Klasse übereinstimmen.

Unterklassenmethoden können die Zugriffsrechte von übergeordneten Klassenmethoden nicht reduzieren.

Ohne diese Einschränkung würde es zu Konflikten mit dem Polymorphismusmechanismus der Java-Sprache kommen.

  //创建父类型的变量,引用子类的实例
  Parent parent = new Child();
  //调用的是子类实例的方法,如果子类覆盖这个方法时,缩小了访问权限,可能会造成无法访问到子类实例的这个方法
  parent.method();

Unterklassenmethoden können nicht mehr Ausnahmen auslösen als übergeordnete Klassenmethoden. Die von Unterklassenmethoden ausgelösten Ausnahmen müssen mit den von übergeordneten Klassenmethoden ausgelösten Ausnahmen identisch sein, oder die von übergeordneten Klassenmethoden ausgelöste Ausnahmeklasse ist Die übergeordnete Klasse Methode löst eine Ausnahme in der Unterklasse der Klasse aus.

Methodenüberschreibungen gibt es nur zwischen der Unterklasse und der übergeordneten Klasse (einschließlich direkter übergeordneter Klassen und indirekter übergeordneter Klassen). kann nicht überschrieben werden.

Die statische Methode der übergeordneten Klasse kann nicht als nicht statische Methode von der Unterklasse überschrieben werden.

Die nicht statische Methode der übergeordneten Klasse kann nicht als nicht überschrieben werden statische Methode durch die Unterklasse

Private Methoden der übergeordneten Klasse können nicht durch Unterklassen überschrieben werden

Nicht abstrakte Methoden der übergeordneten Klasse können als abstrakte Methoden durch Unterklassen überschrieben werden

Ähnlichkeiten und Unterschiede

1. Ähnlichkeiten

Methodennamen müssen konsistent sein

Unterschiede

Methodenüberschreibung erfordert, dass Parametersignaturen konsistent sind, während Methoden überladen werden erfordert, dass die Parametersignaturen inkonsistent sind.

Überschreiben erfordert den Rückgabetyp Konsistent, oder der Rückgabetyp der Unterklassenmethode ist kleiner als der der übergeordneten Klassenmethode. Durch Überladen entstehen hierfür keine Einschränkungen.

Überschreiben kann nur für Unterklassen verwendet werden, um Methoden der übergeordneten Klasse zu überschreiben, und das Überladen wird für alle Methoden derselben Klasse verwendet (einschließlich der von der übergeordneten Klasse geerbten Methoden).

Das Überschreiben erfordert Zugriffsberechtigungen und das Auslösen von Ausnahmen , und es gibt keine Einschränkungen hinsichtlich der Überladung.

Eine Methode der übergeordneten Klasse kann nur einmal von einer Unterklasse überschrieben werden, und eine Methode kann in der Klasse, in der sie sich befindet, mehrmals überladen werden.

Das obige ist der detaillierte Inhalt vonEine vergleichende Einführung in die Methodenabdeckung und Methodenüberladung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen