ホームページ >ウェブフロントエンド >jsチュートリアル >Inheritance_JavaScript スキルと同様のメソッドを使用して js でポリモーフィズムを実装する
ポリモーフィズムは継承と同様の方法で実装できます。まず、いくつかの仮想メソッドを呼び出す抽象クラスを定義します。仮想メソッドは抽象クラスでは定義されず、その固有の実装クラスを通じて実装されます。
次の例のように:
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 メソッドを実装します。