In Java und einigen anderen fortgeschrittenen objektorientierten Programmiersprachen können Unterklassen Methoden von der übergeordneten Klasse erben, ohne dieselben Methoden neu zu schreiben. Aber manchmal möchte die Unterklasse die Methoden der übergeordneten Klasse nicht unverändert erben, sondern bestimmte Änderungen vornehmen, was ein Umschreiben der Methode erfordert. Das Umschreiben von Methoden wird auch als Überschreiben von Methoden bezeichnet. Im Folgenden werden die Regeln zum Umschreiben und Umschreiben von Java-Methoden vorgestellt
So definieren Sie das Überschreiben in Java: Die Vererbungsfunktion einer Klasse in einem Java-Programm kann eine Unterklasse generieren. Wenn die Unterklasse die übergeordnete Klasse erbt, verfügt sie über die nicht privaten Attribute (Methoden und Variablen) der übergeordneten Klasse . Unterklassen können ihre eigenen Attribute (Methoden und Variablen) hinzufügen und auch Methoden in der übergeordneten Klasse erweitern, um ihre eigenen Funktionen zu verbessern. Dies wird auch als Kopieren oder Überschreiben bezeichnet. Das sogenannte Methodenumschreiben bedeutet, dass die Methode der Unterklasse und die von der übergeordneten Klasse geerbte Methode genau denselben Methodennamen, denselben Rückgabewerttyp, dieselbe Anzahl von Methodenparametern und denselben Parametertyp haben. Nur auf diese Weise kann sie als Methode bezeichnet werden Umschreiben.Codereflexion:
Nachdem die Unterklasse die Methode der übergeordneten Klasse neu geschrieben hat, wird beim Instanziieren der Unterklasse dann die Die Methode in der Unterklasse wird aufgerufen und die Methode der übergeordneten Klasse wird überschrieben. Wenn Sie eine Methode der übergeordneten Klasse in einer Unterklasse aufrufen müssen, verwenden Sie das Schlüsselwort super in der Methode der übergeordneten Klasse. Das Format lautet: Der Methodenname (Parameterliste) in der übergeordneten Klasse.
// 这是父类的定义 public class Person { public void eat() { System.out.println("=====这是父类Person的eat方法======="); } } // 这是子类的定义 public class Student extends Person { @Override public void eat() { System.out.println("===这是子类Student的eat方法==="); } // main方法测试 public static void main(String[] args) { Student student = new Student(); student.eat(); //输出:===这是子类Student的eat方法=== } }
(1) Die Parameterliste der Unterklassenmethode muss mit der Parameterliste der überschriebenen Methode in der übergeordneten Klasse übereinstimmen (Anzahl der Parameter und Parametertypen), andernfalls kann nur eine Methodenüberladung erreicht werden. (2) Der Rückgabewerttyp der Unterklassenmethode muss mit dem Rückgabewerttyp der überschriebenen Methode in der übergeordneten Klasse identisch sein, andernfalls kann nur eine Methodenüberladung erreicht werden.
(3) In Java dürfen die Zugriffsrechte einer Unterklassenmethode nicht geringer sein als die Zugriffsrechte der überschriebenen Methode in der übergeordneten Klasse und müssen größer oder gleich den Zugriffsrechten der übergeordneten Klasse sein . (4) Wenn während des Umschreibvorgangs die überschriebene Methode in der übergeordneten Klasse eine Ausnahme auslöst, löst auch die Methode in der Unterklasse eine Ausnahme aus. Es gibt jedoch bestimmte Einschränkungen für die ausgelösten Ausnahmen ---> Unterklassen können nicht mehr Ausnahmen als die übergeordnete Klasse auslösen, sie können nur kleinere Ausnahmen als die übergeordnete Klasse auslösen oder sie können keine Ausnahmen auslösen. Beispiel: Wenn die übergeordnete Klassenmethode eine Ausnahme auslöst, kann die Unterklasse nur eine IOException oder eine Ausnahme kleiner als Exception oder keine Ausnahme auslösen.Das obige ist der detaillierte Inhalt vonÜberschreiben von Methoden in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!