ホームページ  >  記事  >  ウェブフロントエンド  >  Inheritance_JavaScript スキルと同様のメソッドを使用して js でポリモーフィズムを実装する

Inheritance_JavaScript スキルと同様のメソッドを使用して js でポリモーフィズムを実装する

WBOY
WBOYオリジナル
2016-05-16 16:39:091102ブラウズ

ポリモーフィズムは継承と同様の方法で実装できます。まず、いくつかの仮想メソッドを呼び出す抽象クラスを定義します。仮想メソッドは抽象クラスでは定義されず、その固有の実装クラスを通じて実装されます。

次の例のように:

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"

まず、抽象基底クラスbaseが定義され、基底クラスのinitializeメソッド内でoninitメソッドが呼び出されますが、oninitメソッドの実装や宣言は基底クラスでは使用されません。 SubClassA クラスと SubClassB クラスは基本クラスを継承し、さまざまな方法で oninit メソッドを実装します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。