Suche…


Einführung

Polymorphismus ist eines der Grundkonzepte der OOP (Object Oriented Programming) . Die Hauptidee des Polymorphismus ist, dass ein Objekt die Fähigkeit hat, verschiedene Formen anzunehmen. Um dies zu erreichen (Polymorphismus), gibt es zwei Hauptansätze.

  1. Überladung der Methode

    • Tritt auf, wenn es zwei oder mehr Methoden mit demselben Namen und unterschiedlichen Eingabeparametern gibt. Der Rückgabetyp sollte für alle Methoden mit demselben Namen gleich sein
  2. Überschreibende Methode

    • Tritt auf, wenn ein untergeordnetes Objekt dieselbe Methodendefinition verwendet (gleicher Name mit denselben Parametern), jedoch unterschiedliche Implementierungen haben.

Mit diesen beiden Ansätzen können wir dieselbe Methode / Funktion verwenden, um sich unterschiedlich zu verhalten. Lassen Sie uns dazu in den folgenden Beispielen mehr Details sehen.

Methodenüberladung

Überladen von Methoden ist der Weg, Polymorphismus innerhalb einer Klasse zu verwenden. Wir können zwei oder mehr Methoden innerhalb derselben Klasse mit unterschiedlichen Eingabeparametern haben.

Der Unterschied der Eingabeparameter kann entweder sein:

  • Anzahl der Parameter
  • Art der Parameter (Datentyp)
  • Reihenfolge der Parameter

Lassen Sie uns einen separaten Blick auf sie werfen (Diese Beispiele in Java, da ich damit mehr vertraut bin - sorry darüber):

  1. Anzahl der Parameter

     public class Mathematics { 
         public int add (int a, int b) {
             return (a + b);
         }
    
         public int add (int a, int b, int c) {
             return (a + b + c); 
         }
    
         public int add (int a, int b, int c, int c) {
             return (a + b + c + d);
         }
     }
    

    Schauen Sie genau hin, Sie können sehen, dass der Rückgabetyp der Methode derselbe ist - int , aber diese Methoden haben eine unterschiedliche Anzahl von Eingaben. Dies wird als Methode über dem Laden mit einer unterschiedlichen Anzahl von Parametern bezeichnet.

    PS: Dies ist nur ein Beispiel. Sie müssen keine zusätzlichen Funktionen wie diese definieren.

  1. Art der Parameter

    public class Mathematics { 
        public void display (int a) {
            System.out.println("" + a);
        }
    
        public void display (double a) {
            System.out.println("" + a);
        }
    
        public void display (float a) {
            System.out.println("" + a);
        }
    }
    

    Beachten Sie, dass jede Methode denselben Namen und denselben Rückgabetyp hat, während sie unterschiedliche Eingabedatentypen hat.

    PS: Dieses Beispiel dient nur zur Erläuterung.

  1. Reihenfolge der Parameter

    public class Mathematics {
        public void display (int a, double b) {
            System.out.println("Numbers are " + a + " and " + b);
        }
    
        public void display (double a, int b) {
            System.out.println("Numbers are " + a + " and " + b);
        }
    }
    

    PS: Dieses Beispiel dient auch nur der Erläuterung.

Überschreiben der Methode

Das Überschreiben von Methoden ist die Methode, Polymorphismus zwischen Klassen zu verwenden. Wenn eine Klasse von einer anderen Klasse vererbt wird, kann die erstere (Unterklasse) die Methoden der letzteren (Superklasse) überschreiben und die Implementierung ändern.

Dies wird verwendet, wenn die Superklasse die allgemeinere Implementierung der Methode definiert, während die Unterklasse eine spezifischere verwendet.

Betrachten Sie folgendes Beispiel:

Wir haben eine Klasse für Säugetiere:

class Mammal {
  void whoIam () {
    System.out.println("I am a Mammal");
  }
}

Dann haben wir eine Klasse für Hund, die ein Säugetier ist:

class Dog extends Mammal {
  @Override
  void whoIam () {
    super.whoIam();
    System.out.println("I am a Dog!");
  }
}

In diesem Beispiel definieren wir die whoIam() -Methode in der Klasse Mammal , bei der der Säuger es als Säugetier bezeichnet. Dies ist jedoch ein allgemeiner Begriff, da es viele Säugetiere gibt. Dann können wir die Dog Klasse von der Mammal Klasse erben, da Dog ein Mammal ist. Um genauer zu sein, ist Dog ein Hund und ein Säugetier. Daher sollte Dog sagen, I am a Mammal und auch I am a Dog . Daher können wir das außer Kraft setzen whoIam() Methode in Superklasse ( Mammal - Klasse, das ist) von Unterklasse (die Dog

Wir können die Methode der super.whoIam() mit super.whoIam() in Java super.whoIam() . Dann verhält sich der Dog wie ein Hund, während er sich auch wie ein Säugetier verhält.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow