发布网友 发布时间:2023-10-08 13:59
共5个回答
热心网友 时间:2023-11-04 10:58
1.定义区别:
①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。
②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。
2.类的关系区别
覆盖是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系。
3.产生方法区别
覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。
4.参数列表要求区别
覆盖要求参数列表相同;重载要求参数列表不同。
5.调用方法区别
覆盖关系中,调用方法体是根据对象的类型来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的。
参考资料:百度百科-重载
参考资料:百度百科-重写
热心网友 时间:2023-11-04 10:58
重载与覆盖的区别如下:
一、定义不同:
覆盖意思是指遮盖、掩盖,也指空中某点发出的电波笼罩下方一定范围的地面。
重载,简单说就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
二、关系不同
1、覆盖是子类和父类之间的关系,是垂直关系;
2重载是同一个类中方法之间的累加,是水平关系。
三、方法的数量不同
1、覆盖只能由一个方法,或只能由一对方法产生关系;
2、重载是多个方法之间的关系。
四、参数不同
1、覆盖要求参数列表相同。
2、重载要求参数列表不同。
扩展资料:
重载是可使函数、运算符等处理不同类型数据或接受不同个数的参数的一种方法,关于重载一词在词义上有两种不同的说法:
1、多态:重载是一种多态(如C++,Java),有四种形式的多态:
虚函数多态、模板多态、重载、转换
2、覆盖:
重载(overloaded)和多态关系不大,真正和多态相关的是覆盖。
当派生类重新定义了基类的虚拟方法后,基类根据赋给它的不同的派生类引用,动态地调用属于派生类的对应方法,这样的方法调用在编译期间是无法确定的。因此,这样的方法地址是在运行期绑定的(动态绑定)。
重载只是一种语言特性,是一种语法规则,与多态无关,与面向对象也无关。
不过针对所谓的第二种重载,有一个专门的名词--重写或重定义。重载与重写的区别就在于是否覆盖,重写一般多发生在不同的类且存在继承关系之间,而重载多是在一个类里或者一块代码段里。
参考资料:百度百科-重载
百度百科-覆盖
热心网友 时间:2023-11-04 10:59
重载一般在同一个类中发生,方法名字相同但参数类型与个数不同,返回类型与修饰符也可以不同。方法重写发生在父类与子类之间,两个类存在继承关系,方法重写时方法的定义(修饰符,返回类型,参数列表)必须相同,只是方法体(方法实现)不同。热心网友 时间:2023-11-04 10:59
这是我自己写的,不是复制别人的.!热心网友 时间:2023-11-04 11:00
public class A {