Die Implementierung von Polymorphismus kann ähnliche Methoden wie die Vererbung anwenden. Definieren Sie zunächst eine abstrakte Klasse, in der einige virtuelle Methoden aufgerufen werden. Die virtuellen Methoden sind in der abstrakten Klasse nicht definiert, sondern über seine konkrete Implementierungsklasse implementiert.
Wie im folgenden Beispiel:
Object.extend = Funktion (Ziel, Quelle) {für (Eigenschaft in Quelle) {Ziel [Eigenschaft] = Quelle [Eigenschaft]; } Rückgabeziel; } // Definieren Sie eine abstrakte Basisklassenbasis ohne Konstruktorfunktion Base () {}; base.prototype={ initialize:function(){ this.oninit();//A virtual method was called} } function SubClassA(){ //Constructor} SubClassA.prototype=Object.extend({ propInSubClassA:"propInSubClassA", oninit:function(){ alert(this.propInSubClassA); } }, Base.Prototype); Funktion subclassB () {// Konstruktor} subclassB.Prototype = Object.extend ({propinsubClassB: "propInsubclassB", oninit: function () {alert (this.propinSubClassB);}}, Basis.Prototype); var obja = new subclassa (); Obja.initialize (); // Ausgabe "propinsubclassa" var objb = new subclassB (); objb.initialize (); // Ausgabe "propinsubClassB"Erstens ist eine abstrakte Basisklassenbasis definiert. Die Oninit -Methode wird in der Initialisierungsmethode der Basisklasse aufgerufen, aber die Basisklasse verwendet nicht die Implementierung oder Deklaration der Oninit -Methode. Unterklassen- und Unterklassenklassen erben von Basisklassen und implementieren die Oninit -Methode auf unterschiedliche Weise.