Dieser Artikel beschreibt die Verwendung von Polymorphismus in Java anhand von Beispielen. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Polymorphismus ist das Kernmerkmal objektorientierter Programmiersprachen. Kapselung und Vererbung sind relativ einfach, daher werde ich hier nur eine kleine Anmerkung zum Polymorphismus machen. . .
1. Was ist Polymorphismus?
Polymorphismus bedeutet, dass ein Objekt mehrere Eigenschaften haben und unter bestimmten Umständen unterschiedliche Zustände aufweisen kann, um auf unterschiedliche Eigenschaften und Methoden zu reagieren. In Java bezieht sich die polymorphe Implementierung auf die Verwendung derselben Implementierungsschnittstelle zum Implementieren verschiedener Objektinstanzen.
Beispielsweise definieren wir eine Parent-Klasse, dann eine getName()-Methode, um eine Zeichenfolge zurückzugeben, definieren eine Member-Methode doSomething(Parent obj), deren formaler Parameter der Parent-Typ ist, und rufen in dieser Methode obj.getName() auf. Definieren Sie dann zwei Klassen A und B, die beide von der übergeordneten Klasse erben, und überschreiben Sie die Methode getName() in der Unterklasse. Erstellen Sie abschließend ein Objekt objP der Parent-Klasse in der Hauptmethode, rufen Sie die Methode objP.doSomething() auf und übergeben Sie ihr die Referenzen von Klasse A und Klasse B. Beobachten Sie die Ausgabe.
class Parent { private String name = "parent"; public String getName() { return this.name } public void doSomething(Parent obj) { //Ausgabeklassenname System.out.println(obj.getName() } public static void main(String[] args) { Parent objP = new Parent(); // Bei der Übergabe einer Referenz auf A wird die getName-Methode der Klasse A aufgerufen objP.doSomething(new B()); // Wenn eine Referenz auf B übergeben wird, wird die getName-Methode der Klasse B aufgerufen} } class A erweitert Parent { private String name = "class A"; //@Rewrite the getName() method public String getName() { return this.name } } class B extensions Parent { private String name = "class B" //@Rewrite getName () Methode public String getName() { return this.name; } }
Es ist ersichtlich, dass die doSomething-Methode der übergeordneten Klasse polymorph die getName-Methode des von uns übergebenen Objekts aufruft und nicht die getName-Methode der übergeordneten Klasse selbst.
2. Schnittstelle in Java
Eine Schnittstelle in Java ist eine Deklaration einer Reihe von Methoden. Eine Schnittstelle verfügt nur über die Eigenschaften von Methoden, nicht jedoch über die Implementierung von Methoden. Diese Methoden können von anderer Stelle über bestimmte Klassen implementiert werden. In Java wird das Schlüsselwort interface zum Deklarieren einer Schnittstelle verwendet.
Beispiele für Polymorphismus mithilfe von Schnittstellen:
interface Name { //Nur deklarieren, nicht implementieren public String getName(); } class A implementiert Name { private String name = "class A" //Implementieren Sie die getName-Methode public String getName() { return name; implementiert Name { private String name = "class B"; //Implementieren Sie die getName-Methode public String getName() { return name } public static void main(String[] args) { Name obj = new A(); System.out.println(obj.getName());
Wie Sie sehen, wird der Name der Klasse A, Klasse A, gedruckt.
PS: Wenn eine Klasse nicht alle Methoden in der Schnittstelle implementiert, muss die Klasse als abstrakt deklariert werden. Eine abstrakte Klasse erlaubt keine Instanziierung von Objekten.
Ich hoffe, dass dieser Artikel für die Java-Programmierung aller hilfreich sein wird.