Maison > interface Web > js tutoriel > Implémentez le polymorphisme dans js en utilisant des méthodes similaires aux compétences d'héritage_javascript

Implémentez le polymorphisme dans js en utilisant des méthodes similaires aux compétences d'héritage_javascript

WBOY
Libérer: 2016-05-16 16:39:09
original
1126 Les gens l'ont consulté

Le polymorphisme peut être implémenté de la même manière que l'héritage. Définissez d'abord une classe abstraite, qui appelle certaines méthodes virtuelles. Les méthodes virtuelles ne sont pas définies dans la classe abstraite, mais sont implémentées via sa classe d'implémentation spécifique.

Comme dans l'exemple suivant :

Object.extend=function(destination,source){ 
for(property in source){ 
destination[property]=source[property]; 
} 
return destination; 
} 
//定义一个抽象基类base,无构造函数 
function base(){}; 

base.prototype={ 
initialize:function(){ 
this.oninit();//调用了一个虚方法 
} 
} 
function SubClassA(){ 
//构造函数 
} 
SubClassA.prototype=Object.extend({ 
propInSubClassA:"propInSubClassA", 
oninit:function(){ 
alert(this.propInSubClassA); 
} 
},base.prototype); 

function SubClassB(){ 
//构造函数 
} 
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();//输出"propInSubClassB"
Copier après la connexion

Tout d'abord, une classe de base abstraite base est définie et la méthode oninit est appelée dans la méthode initialize de la classe de base, mais l'implémentation ou la déclaration de la méthode oninit n'est pas utilisée dans la classe de base. Les classes SubClassA et SubClassB héritent de la classe de base et implémentent la méthode oninit de différentes manières.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal