我有一個主類和實現的方法具有相同名稱的多個繼承的類,如:Delphi的對象鑄造
MainClass = class(TImage)
//main class methods...
end;
MyClass1 = class(MainClass)
procedure DoSomething;
end;
MyClass2 = class(MainClass)
procedure DoSomething;
end;
MyClass3 = class(MainClass)
procedure DoSomething;
end;
我也有包含指向對象實例(幾類)一個從TList。 如果我想爲每個班級撥打正確的DoSomething
程序,我是否使用以下內容?
if TList[i] is MyClass1 then
MyClass1(TList[i]).DoSomething
else if TList[i] is MyClass2 then
MyClass2(TList[i]).DoSomething
else if TList[i] is MyClass3 then
MyClass3(TList[i]).DoSomething
是否有一些鑄造方法,允許我在幾行代碼中執行此操作?
多態性沒有繼承......要具體 – GDF 2012-01-31 19:46:39
@GDF,真實,編輯。 – 2012-01-31 19:48:05
真正的多態還是虛擬的? ;) – mjn 2012-02-01 16:09:21