多型的實現可以採用和繼承類似的方法。首先定義乙個抽象類,其中呼叫一些虛方法,虛方法在抽象類中沒用定義,而是通過其具體的實現類來實現。
如下面的例子:
object.extend=function(destination,source)
return destination;
}//定義乙個抽象基類base,無建構函式
function base(){};
base.prototype=
}function subclassa()
subclassa.prototype=object.extend(
},base.prototype);
function subclassb()
subclassb.prototype=object.extend(
},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實現繼承多型
類物件構造模版,無new訪問,類似靜態訪問 var class 模擬抽象方法,可以隨便自己定 show function 模擬繼承extobj擴充套件物件,srcobj源物件 var extend function extobj,srcobj return extobj 動態為object新增ext...
JS如何實現過載和多型
可以理解乙個方法被不同實現後 展現不同的效果及狀態。js本身不支援過載,所以只能通過其他方式實現,arguments檢測傳參的個數,然後再執行不同的方式 function add return sum alert add alert add 1 2 alert add 1 2 3 function ...
C 中的多型及多型的實現
c 中的多型分為靜多型和動多型兩種情況。靜多型是在編譯時就能確定呼叫函式的型別,包括過載和模板。動多型則是需要在執行時才能確定呼叫哪乙個函式。動多型的產生條件是需要在基類的指標指向派生類的物件,並呼叫派生類的函式。而要想呼叫派生類的函式,那麼基類裡這個函式應寫為虛函式。什麼是虛函式?所謂的虛函式就是...