js中实现多态采用和继承类似的方法

前端之家收集整理的这篇文章主要介绍了js中实现多态采用和继承类似的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

多态的实现可以采用和继承类似的方法。首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现。

如下面的例子:

函数 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,在base类的initialize方法调用了oninit方法,但是基类中并没用oninit方法的实现或者声明。SubClassA和SubClassB类继承自base类,并且分别采用了不同的方式对oninit方法进行实现。

猜你在找的JavaScript相关文章