博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重载与重写的区别
阅读量:5143 次
发布时间:2019-06-13

本文共 618 字,大约阅读时间需要 2 分钟。

1.定义区别:

①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。

②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。

2.类的关系区别

覆盖是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。

3.产生方法区别

覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。

4.参数列表要求区别

覆盖要求参数列表相同;重载要求参数列表不同。

5.调用方法区别

覆盖关系中,调用方法体是根据对象的类型来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的。

扩展资料

方法的重写:

1、在子类中可以根据需要对从基类中继承来的方法进行重写。

2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和。(注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)

3、重写方法不能使用比被重写的方法更严格的访问权限。

4. 重写方法不能声明抛出比被重写方法范围更大的异常类型。

总结:重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,都在父类方法控制范围内,内部具体实现可以实现不同的效果。

转载于:https://www.cnblogs.com/mike-JP/p/10968973.html

你可能感兴趣的文章
模板模式
查看>>
PAT 1014 福尔摩斯的约会
查看>>
ssh2整合中的一些问题
查看>>
hibernate Expression详解
查看>>
LeetCode #303. Range Sum Query
查看>>
oracle 自增序列实现 可作为主键
查看>>
STM32----stlink口
查看>>
Android viewpager切换到最后一页时,跳转至其他activity
查看>>
开启GD拓展
查看>>
JQUERY 大于
查看>>
ZooKeeper做独立server执行(上)
查看>>
《经济地理与企业兴衰》学习笔记
查看>>
正确 C# 未来的期望
查看>>
树状数组
查看>>
POJ 1328 Radar Installation(经典贪婪)
查看>>
Netty源代码学习——EventLoopGroup原理:NioEventLoopGroup分析
查看>>
IOS status bar
查看>>
void及void指针含义的深刻解析
查看>>
【UVA】434-Matty's Blocks
查看>>
五、宽度优先搜索(BFS)
查看>>