English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Detailed Explanation of Java Polymorphism and Simple Examples

Polymorphie in Java implementieren

Was ist Polymorphie?

  1. Drei große Eigenschaften der objektorientierten Programmierung: Kapselung, Vererbung, Polymorphie. In gewisser Weise sind Kapselung und Vererbung fast vorbereitet für Polymorphie. Dies ist unser letzter Begriff und auch der wichtigste Punkt.
  2. Definition der Polymorphie: Es ermöglicht es verschiedenen Objekten verschiedener Klassen, auf das gleiche Nachricht zu reagieren. Das gleiche Nachricht kann je nach dem gesendeten Objekt verschiedene Verhaltensweisen annehmen. (Nachricht senden ist Funktionsaufruf)
  3. Die Technologie zur Implementierung der Polymorphie wird als dynamische Bindung (dynamic binding) bezeichnet, die bedeutet, dass während der Ausführung die tatsächliche Art des referenzierten Objekts bestimmt wird und entsprechend der tatsächlichen Art die entsprechenden Methoden aufgerufen werden.
  4. Die Funktion der Polymorphie: Entkoppeln der Typbeziehungen.
  5. In der Realität gibt es unzählige Beispiele für Polymorphie. Zum Beispiel, wenn Sie F drücken1 Drücken dieser Aktion, wenn im Flash-Interface ein Popup-Aufruf von AS erfolgt. 3 Dokumentation; Wenn im Word-Modus ein Popup-Aufruf von Word-Hilfe erfolgt, ist es im Windows-Modus ein Popup-Aufruf von Windows-Hilfe und Unterstützung. Das gleiche Ereignis führt auf verschiedenen Objekten zu verschiedenen Ergebnissen.

Hier sind die drei notwendigen Bedingungen für die Existenz der Polymorphie, die jeder sich während des Schlafens merken sollte!

Drei notwendige Bedingungen für die Existenz der Polymorphie

Eins: Es muss vererbt werden;
Zwei: Es muss überschrieben werden;
Drei Bedingungen für die Existenz der Elternklasse-Referenz auf die Subjektobjekte.

 Vorteile der Polymorphie:

1. Ersetzbarkeit (Ersetzbarkeit). Polymorphie ist für bestehenden Code ersetzbar. Zum Beispiel funktioniert Polymorphie mit der Kugelklasse Circle, aber auch mit anderen beliebigen zirkulären Geometrien, wie dem Ring.

2. Erweiterbarkeit (Erweiterbarkeit). Polymorphie ist für den Code erweiterbar. Der Hinzufügung neuer Unterklassen beeinflusst nicht die Polymorphie, Vererbung und andere Eigenschaften der bestehenden Klassen sowie deren Betrieb und Operation. Tatsächlich ist es einfacher, neue Unterklassen mit Polymorphiefunktionen zu erhalten. Zum Beispiel ist es einfach, die Polymorphie der Kugelklasse hinzuzufügen, wenn bereits die Polymorphie von Kegel, Halbkegel und Halbsphäre implementiert ist.

3. Schnittstelle-. Fähigkeit). Polymorphie wird durch den Superklasse über die Methodensignatur bereitgestellt, eine gemeinsame Schnittstelle für die Unterklassen, die sie vervollständigen oder überschreiben können. Wie im Diagramm gezeigt8.3 Gezeigt. Der Superklasse Shape wurden zwei Methoden zur Implementierung der Polymorphie vorgeschrieben, computeArea() und computeVolume(). Die Unterklassen, wie Circle und Sphere, vervollständigen oder überschreiben diese Schnittstellenmethoden, um Polymorphie zu erreichen.

4. Flexibilität (Flexibilität). Es zeigt in der Anwendung eine flexible und vielfältige Operation, die Effizienz der Verwendung erhöht.

5. Einfachheit (Einfachheit). Polymorphie vereinfacht den Prozess der Code-Schreibung und -Änderung für Anwendungssoftware, insbesondere bei der Verarbeitung großer Mengen von Objekten, ist diese Eigenschaft besonders ausgeprägt und wichtig.

Möglichkeiten der Polymorphie in Java: Implementierung über Schnittstellen, Übergang von übergeordneten Klassen durch Methodenüberschreibung, Methodenüberladung in derselben Klasse.

Ein kleines Thema:

(I) Verwandte Klassen

class A ...{ 
     public String show(D obj)...{ 
        return ("A and D"); 
     }  
     public String show(A obj)...{ 
        return ("A and A"); 
     }  
}  
class B extends A...{ 
     public String show(B obj)...{ 
        return ("B and B"); 
     } 
     public String show(A obj)...{ 
        return ("B and A"); 
     }  
} 
class C extends B...{}  
class D extends B...{} 

(二)问题:以下输出结果是什么?

A a1 = new A(); 
    A a2 = new B(); 
    B b = new B(); 
    C c = new C();  
    D d = new D();  
    System.out.println(a1.show(b));  ① 
    System.out.println(a1.show(c));  ② 
    System.out.println(a1.show(d));  ③ 
    System.out.println(a2.show(b));  ④ 
    System.out.println(a2.show(c));  ⑤ 
    System.out.println(a2.show(d));  ⑥ 
    System.out.println(b.show(b));  ⑦ 
    System.out.println(b.show(c));  ⑧ 
    System.out.println(b.show(d));  ⑨   

(三)答案

① A und A
② A und A
③ A und D
④ B und A
⑤ B und A
⑥ A und D
⑦ B und B
⑧ B und B
⑨ A und D

Vielen Dank für das Lesen, ich hoffe, es hilft Ihnen weiter, vielen Dank für Ihre Unterstützung dieser Seite!

You May Also Like