Реализация полиморфизма может принять аналогичные методы, что и наследование. Во -первых, определите абстрактный класс, в котором называются некоторые виртуальные методы. Виртуальные методы не определены в абстрактном классе, но реализуются через его конкретный класс реализации.
Как в следующем примере:
Object.extend = function (destination, source) {for (свойство в источнике) {destination [свойство] = source [свойство]; } return destine; } // Определите абстрактную базовую базу класса без базы NO Constructor Base () {}; base.prototype = {initiaze: function () {this.oninit (); // Виртуальный метод назывался}} function subclassa () {// constructor} subclassa.prototype = object.extend ({propinsubclassa: "propinsubclassa", oninit: function (alert (this.propinsub }, base.prototype); function subclassb () {// constructor} subclassb.prototype = object.extend ({propinsubclassb: "propinsubclassb", oninit: function () {alert (this.propinsubclassb);}}, base.prototype); var obja = new subclassa (); obja.initialize (); // выход "propinsubclassa" var objb = new subclassb (); objb.initialize (); // output "propinsubclassb"Во -первых, определяется абстрактная базовая база класса. Метод Oninit вызывается в методе инициализации базового класса, но базовый класс не использует реализацию или объявление метода Oninit. Классы Subclassa и SubclassB наследуют от базовых классов и реализуют метод Oninit по -разному.