Heim > Java > javaLernprogramm > Hauptteil

Der Unterschied zwischen Umschreib- und Überladungsmethoden in Java

伊谢尔伦
Freigeben: 2016-11-21 15:02:50
Original
1480 Leute haben es durchsucht

Ü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();
         }
}
Nach dem Login kopieren

Beim Kompilieren wird ein Fehler gemeldet, wie in der Abbildung gezeigt:

Der Unterschied zwischen Umschreib- und Überladungsmethoden in Java

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();
         }
}
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage