oop
Polymorphismus
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.
Ü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
Ü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):
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.
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.
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.