Heim  >  Artikel  >  Java  >  Was sind Überladung und Überschreibung in Java?

Was sind Überladung und Überschreibung in Java?

Susan Sarandon
Susan SarandonOriginal
2024-09-27 10:37:30709Durchsuche

What are overloading and overriding in Java

1. Was ist Methodenüberladung in Java?

Methodenüberladung tritt auf, wenn mehrere Methoden in derselben Klasse denselben Namen haben, aber unterschiedliche Parameter haben (Typ, Nummer oder beides). Der Hauptgedanke hinter der Methodenüberladung besteht darin, die Lesbarkeit des Programms zu verbessern.

1.1 Merkmale der Methodenüberladung

  • Gleicher Methodenname: Alle überladenen Methoden müssen denselben Namen haben.
  • Unterschiedliche Parameterlisten: Die Methoden müssen sich in der Anzahl der Parameter oder deren Typen unterscheiden.
  • Polymorphismus zur Kompilierungszeit: Methodenüberladung ist ein Beispiel für Polymorphismus zur Kompilierungszeit (oder statisch) in Java.

1.2 Beispiel für Methodenüberladung

Sehen wir uns ein einfaches Beispiel an, um die Methodenüberladung zu veranschaulichen:

public class Calculator {

    // Method to add two integers
    public int add(int a, int b) {
        return a + b;
    }

    // Method to add three integers
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // Method to add two doubles
    public double add(double a, double b) {
        return a + b;
    }
}

1.3 Erläuterung des Beispiels

Im obigen Beispiel verfügt die Klasse Calculator über drei überladene Methoden mit dem Namen add. Jede Methode hat eine andere Parameterliste:

  • Die erste Methode benötigt zwei int Parameter.
  • Die zweite Methode benötigt drei int Parameter.
  • Die dritte Methode benötigt zwei doppelte Parameter.

Wenn die Methode add aufgerufen wird, wird die entsprechende Version basierend auf den übergebenen Argumenten ausgewählt. Dadurch wird der Code intuitiver und leichter verständlich.

1.4 Demo und Ergebnisse

public class TestCalculator {
    public static void main(String[] args) {
        Calculator calc = new Calculator();

        System.out.println("Addition of two integers: " + calc.add(10, 20)); // Outputs 30
        System.out.println("Addition of three integers: " + calc.add(10, 20, 30)); // Outputs 60
        System.out.println("Addition of two doubles: " + calc.add(10.5, 20.5)); // Outputs 31.0
    }
}

2. Was ist Methodenüberschreibung in Java?

Methodenüberschreibungen treten auf, wenn eine Unterklasse eine bestimmte Implementierung einer Methode bereitstellt, die bereits in ihrer Oberklasse definiert ist. Der Zweck des Methodenüberschreibens besteht darin, einer Unterklasse die Bereitstellung einer spezifischen Implementierung einer Methode zu ermöglichen, die bereits durch eine ihrer Oberklassen definiert ist.

2.1 Merkmale des Methodenüberschreibens

  • Gleiche Methodensignatur: Die Methode in der Unterklasse muss denselben Namen, denselben Rückgabetyp und dieselben Parameter wie die Methode in der Oberklasse haben.
  • Laufzeitpolymorphismus: Das Überschreiben von Methoden ist ein Beispiel für Laufzeitpolymorphismus (oder dynamischen Polymorphismus) in Java.
  • @override-Annotation: Es hat sich bewährt, die @override-Annotation zu verwenden, um anzugeben, dass eine Methode eine Superklassenmethode überschreibt.

2.2 Beispiel für das Überschreiben einer Methode

Sehen wir uns ein praktisches Beispiel für das Überschreiben von Methoden an:

class Animal {
    // Method in the superclass
    void sound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    // Overriding the sound() method in the subclass
    @Override
    void sound() {
        System.out.println("The dog barks");
    }
}

2.3 Erläuterung des Beispiels

Im obigen Beispiel:

  • Die Klasse Animal verfügt über eine Methode namens sound, die eine allgemeine Nachricht ausgibt.
  • Die Klasse Dog erweitert Animal und überschreibt die Methode sound, um eine bestimmte Nachricht bereitzustellen.

Wenn die Sound-Methode für eine Instanz von Dog aufgerufen wird, wird die überschriebene Methode in Dog ausgeführt.

2.4 Demo und Ergebnisse

public class TestAnimal {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Upcasting
        myDog.sound(); // Outputs: The dog barks
    }
}

3. Überladen vs. Überschreiben: Hauptunterschiede

3.1 Definition

  • Überladung: Beinhaltet mehrere Methoden in derselben Klasse mit demselben Namen, aber unterschiedlichen Parametern.
  • Überschreiben: Beinhaltet die Neudefinition einer Methode in einer Unterklasse, die bereits in der Oberklasse definiert ist.

3.2 Polymorphismustyp

  • Überladung: Stellt Polymorphismus zur Kompilierungszeit dar.
  • Überschreiben: Stellt Laufzeitpolymorphismus dar.

3.3 Bindung

  • Überladung: Die Methodenbindung erfolgt zur Kompilierungszeit.
  • Überschreiben: Die Methodenbindung erfolgt zur Laufzeit.

3.4 Anwendungsfall

  • Überladung: Wird verwendet, wenn Methoden ähnliche Funktionen mit unterschiedlichen Typen oder Anzahlen von Parametern ausführen.
  • Überschreiben: Wird verwendet, wenn eine Unterklasse eine bestimmte Implementierung für eine Methode bereitstellen muss, die bereits in der Oberklasse definiert ist.

4. Fazit

Das Verständnis der Unterschiede zwischen Methodenüberladung und Methodenüberschreibung ist entscheidend für das Schreiben effektiven Java-Codes. Überladen verbessert die Lesbarkeit und Benutzerfreundlichkeit Ihres Codes, indem mehrere Methoden mit demselben Namen, aber unterschiedlichen Parametern zugelassen werden. Durch Überschreiben hingegen kann eine Unterklasse eine spezifische Implementierung einer Methode bereitstellen, die bereits in der Oberklasse definiert ist, was den Laufzeitpolymorphismus erleichtert.

Wenn Sie Fragen haben oder weitere Erläuterungen benötigen, können Sie unten gerne einen Kommentar abgeben. Ich bin hier, um zu helfen!

Weitere Beiträge finden Sie unter: Was sind Überladung und Überschreibung in Java?

Das obige ist der detaillierte Inhalt vonWas sind Überladung und Überschreibung in Java?. 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