码迷,mamicode.com
首页 > Web开发 > 详细

js中实现多态

时间:2014-08-22 08:11:45      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:继承   多态      js   function   

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

如下面的例子:

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

js中实现多态,布布扣,bubuko.com

js中实现多态

标签:继承   多态      js   function   

原文地址:http://blog.csdn.net/xiebaochun/article/details/38749953

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!