Überladung: Die Methodennamen sind gleich, aber die Parameter müssen unterschiedlich sein (unterschiedliche Parameter können zu unterschiedlichen Typen, unterschiedlichen Reihenfolgen und unterschiedlichen Zahlen führen). Überschreiben (auch Überschreiben genannt): Die Unterklasse erbt die Methode der übergeordneten Klasse und implementiert die Methode erneut.
Vorsichtsmaßnahmen für die Verwendung des Methodenumschreibens:
1. Beim Umschreiben einer Methode muss eine Vererbungsbeziehung bestehen
2. Beim Umschreiben einer Methode müssen der Methodenname und die formalen Parameter konsistent sein .
3. Beim Umschreiben einer Methode muss der Berechtigungsmodifikator der Unterklasse größer oder gleich dem Berechtigungsmodifikator der übergeordneten Klasse sein.
4. Beim Umschreiben einer Methode muss der Rückgabewerttyp der Unterklasse kleiner oder gleich dem Rückgabewerttyp der übergeordneten Klasse sein.
5. Beim Umschreiben einer Methode muss der Ausnahmetyp der Unterklasse sein kleiner oder gleich dem Ausnahmetyp der übergeordneten Klasse.
Hier verwenden wir hauptsächlich den dritten Punkt zum Testen:
public class a{ public static class People { public void fun(){}; } static class Student extends People { protected void fun(){ System.out.println("dfdfd"); } } public static void main(String[] args){ Student p = new Student(); p.fun(); } }
Beim Kompilieren wird ein Fehler gemeldet, wie in der Abbildung gezeigt:
Der Grund dafür ist, dass die Berechtigung der Methode der übergeordneten Klasse öffentlich ist und die Unterklasse in „geschützt“ geändert wird, wodurch die Berechtigung verringert wird, sodass sie nur größer oder gleich sein kann: 🎜>
public class a{ public static class People { protected void fun(){}; } static class Student extends People { public void fun(){ System.out.println("dfdfd"); } } public static void main(String[] args){ Student p = new Student(); p.fun(); } }