菜鸟入门之浅谈函数重载和多态的区别 (转)[@more@]
函数重载是和多态不一样的,
函数重载的例子表达式如下:
function Foo(i:Integer):string;overload;
function Foo(s:string):string;overload;
通过传不同的参数,选择执行不同函数执行。
而多态是通过把子类对象赋给父类对象(大逆不道?!:)),
让父类对象具有子类对象的方法,例子表达式如下:
TParent=class(Tobject)
procedure Draw;virtual;
end;
TChild=class(TParent)
procedure Draw;override;
procedure ShowHierarchy;virtual;
end;
Parent:=Child;
Parent.Draw;//执行子类的Draw;
这就是我们为什么总是看见sender:TObject的参数,
就是把子类对象如1个Button赋给父类(Tobject)对象的结果。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-990992/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752043/viewspace-990992/
本文详细介绍了函数重载和多态的概念及其区别。函数重载允许同一个函数名对应多个实现,通过传递不同类型的参数来区分。多态则允许父类引用指向子类对象,并调用子类的方法,实现运行时的多态性。
144

被折叠的 条评论
为什么被折叠?



