菜鸟入门之浅谈函数重载和多态的区别
2011-04-08 18:55
351 查看
函数重载是和多态不一样的,
函数重载的例子表达式如下:
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)对象的结果。
函数重载的例子表达式如下:
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)对象的结果。
相关文章推荐
- 菜鸟入门之浅谈函数重载和多态的区别
- 菜鸟入门之浅谈函数重载和多态的区别
- c++中多态函数以及函数重载,覆盖,遮蔽(隐藏)的区别
- c++中多态函数以及函数重载,覆盖,遮蔽(隐藏)的区别
- **C++和JAVA中的多态区别以及与此相关的重载、覆盖和隐藏*
- 重载与覆盖的区别 多态
- 多态和重载的区别
- C++中的虚函数,多态,覆盖隐藏重载
- 菜鸟入门 字节与位的区别及联系
- 类成员函数的重载、覆盖和隐藏区别
- 重写、覆盖、重载、隐藏、多态几个概念的区别分析 http://blog.csdn.net/yukin_xue/article/details/7437742
- C++覆盖、重载、多态区别 ; 重载、重写(覆盖)、重定义(隐藏)三者区别
- JAVA中多态和重载的区别
- C++中函数覆盖 隐藏 重载区别
- 浅谈JS函数定义方式的区别
- 继承与派生,多继承,函数重载,构造函数调用顺序 静态多态和动态多态
- 专业做笔记24h之Java入门总结(方法重载与方法重写的区别)
- 函数覆盖、函数隐藏与函数重载的区别
- 重载、覆盖、多态与函数隐藏(2)
- C和C++区别——函数的重载