我有一个主类和实现的方法具有相同名称的多个继承的类,如: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