区别覆盖,重载与多态
2013-12-12 12:16
260 查看
覆盖:
在基类中定义了一个非虚拟函数,然后在派生类中又定义了一个同名同参数同返回类型的函数,这就是覆盖了。在派生类对象上直接调用这个函数名,只会调用派生类中的那个。
重载:
在基类中定义了一个非虚拟函数,然后在派生类中定义一个同名,但是具有不同的参数表的函数,这就是重载。在派生类对象上调用这几个函数时,用不同的参数会调用到不同的函数,有可能会直接调用到基类中的那个。
多态:
在基类中定义了一个虚拟函数,然后在派生类中又定义一个同名,同参数表的函数,这就是多态。多态是这3种情况中唯一采用动态绑定技术的一种情况。也就是说,通过一个基类指针来操作对象,如果对象是基类对象,就会调用基类中的那个函数,如果对象实际是派生类对象,就会调用派声雷中的那个函数,调用哪个函数并不由函数的参数表决定,而是由函数的实际类型决定。
重载就是名字相同参数不同,覆盖就是都一样,功能上也鹊巢鸠占了。
在基类中定义了一个非虚拟函数,然后在派生类中又定义了一个同名同参数同返回类型的函数,这就是覆盖了。在派生类对象上直接调用这个函数名,只会调用派生类中的那个。
重载:
在基类中定义了一个非虚拟函数,然后在派生类中定义一个同名,但是具有不同的参数表的函数,这就是重载。在派生类对象上调用这几个函数时,用不同的参数会调用到不同的函数,有可能会直接调用到基类中的那个。
多态:
在基类中定义了一个虚拟函数,然后在派生类中又定义一个同名,同参数表的函数,这就是多态。多态是这3种情况中唯一采用动态绑定技术的一种情况。也就是说,通过一个基类指针来操作对象,如果对象是基类对象,就会调用基类中的那个函数,如果对象实际是派生类对象,就会调用派声雷中的那个函数,调用哪个函数并不由函数的参数表决定,而是由函数的实际类型决定。
重载就是名字相同参数不同,覆盖就是都一样,功能上也鹊巢鸠占了。
相关文章推荐
- 深入浅出面向切面编程AOP
- 《SQL Server 2000设计与T-SQL编程》
- leetcode-Copy List with Random Pointer
- Unity3D4.0汉化补丁及汉化教程
- Jquery创建一个层,鼠标移动到层上面不消失
- 黑马程序员_摘抄助于理解IO结构的四张结构图
- Qt的安装及共享文件设置
- 黑马程序员_Java学习笔记之7K面试题交通等管理系统
- 黑马程序员----java之面向对象(下)
- 动手学Javascript(1)——PopStar
- 第16周项目2--指来指去(2)
- Flash笔记 快捷键
- IOS开发入门之创建项目
- HashMap学习笔记:get方法
- 说说今年除夕假日
- 图像处理与计算机视觉基础,经典以及最近发展
- 解决SQL Server转ACCESS自动编号问题
- 2013年06月 八个短对话 第三套
- 实现了个类似blood brothers中的转轴特效
- 黑马程序员----java之面向对象(上)