亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js中實(shí)現(xiàn)多態(tài)采用和繼承類(lèi)似的方法

 更新時(shí)間:2014年08月22日 08:58:31   投稿:whsnow  
首先定義一個(gè)抽象類(lèi),其中調(diào)用一些虛方法,虛方法在抽象類(lèi)中沒(méi)用定義,而是通過(guò)其具體的實(shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)

多態(tài)的實(shí)現(xiàn)可以采用和繼承類(lèi)似的方法。首先定義一個(gè)抽象類(lèi),其中調(diào)用一些虛方法,虛方法在抽象類(lèi)中沒(méi)用定義,而是通過(guò)其具體的實(shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)。

如下面的例子:

Object.extend=function(destination,source){ 
for(property in source){ 
destination[property]=source[property]; 
} 
return destination; 
} 
//定義一個(gè)抽象基類(lèi)base,無(wú)構(gòu)造函數(shù) 
function base(){}; 

base.prototype={ 
initialize:function(){ 
this.oninit();//調(diào)用了一個(gè)虛方法 
} 
} 
function SubClassA(){ 
//構(gòu)造函數(shù) 
} 
SubClassA.prototype=Object.extend({ 
propInSubClassA:"propInSubClassA", 
oninit:function(){ 
alert(this.propInSubClassA); 
} 
},base.prototype); 

function SubClassB(){ 
//構(gòu)造函數(shù) 
} 
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"

首先定義了一個(gè)抽象基類(lèi)base,在base類(lèi)的initialize方法中調(diào)用了oninit方法,但是基類(lèi)中并沒(méi)用oninit方法的實(shí)現(xiàn)或者聲明。SubClassA和SubClassB類(lèi)繼承自base類(lèi),并且分別采用了不同的方式對(duì)oninit方法進(jìn)行實(shí)現(xiàn)。

相關(guān)文章

最新評(píng)論