يمكن أن يعتمد تنفيذ تعدد الأشكال طرقًا مماثلة كميراث. أولاً ، حدد فئة مجردة ، حيث تسمى بعض الأساليب الافتراضية. لا يتم تعريف الطرق الافتراضية في الفئة التجريدية ، ولكن يتم تنفيذها من خلال فئة التنفيذ الملموسة.
كما في المثال التالي:
Object.Extend = function (الوجهة ، المصدر) {for (الخاصية في المصدر) {Destination [property] = source [property] ؛ } وجهة العودة ؛ } // تحديد قاعدة فئة قاعدة مجردة بدون قاعدة وظيفة مُنشئ () {} ؛ base.prototype = {initialize: function () {this.oninit () ؛ // تم استدعاء طريقة افتراضية}} subclassa () {// constructor} subclassa.prototype = object.extend ({propinsubclassa: "propinsubclassa" ، oninit: function () } ، base.prototype) ؛ الدالة subclassb () {// constructor} subclassb.prototype = object.Extend ({propinsubclassb: "propinsubclassb" ، onInit: function () {Alert (this.propinsubclassb) ؛}} ، base.prototype) ؛ var obja = subclassa () جديد ؛ OBJA.Initialize () ؛ // الإخراج "propinsubclassa" var objb = جديد فئة فرعية () ؛ OBJB.Initialize () ؛ // الإخراج "proinsubclassb"أولاً ، يتم تعريف قاعدة فئة قاعدة مجردة. يتم استدعاء طريقة ONINIT في طريقة تهيئة الفئة الأساسية ، لكن الفئة الأساسية لا تستخدم تنفيذ أو إعلان طريقة ONINIT. ترث فئات الفك السفلية والفئة الفرعية من الفئات الأساسية وتنفيذ طريقة ONINIT بطرق مختلفة.