Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
Overload是覆盖,子类的方法跟父类方法名字一样,子类的方法把父类的覆盖了。
Override是重载,不同的方法参数、返回值不一样,紧紧返回值不一样的两个函数不叫重载,编译不会通过的。
Overload意思为超载,是针对同名方法的不同表现形式,参数列表不同。例如:
void f(int i);
void f(int i, int j);
两个方法是overload关系
override是复写(覆盖),是完全相同的参数列表,一般用于面向对象的继承
例如:
class CBase
{
public:
virtual void f(int i);
};
class CDerived : public CBase
{
public:
virtual void f(int i);
};
这里子类的f覆盖了父类的f。
Overloaded方法返回值当然可以更改,当如果只更改返回值是不能overload的,编译会出错。但Override不可以,参数列表必须完全一样。
来源:http://zhidao.baidu.com/question/1856258.html
分享到:
相关推荐
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,想要了解更多请参考本
重载overload,这个概念是大家熟知的。在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制就是重载
本文主要介绍了PHP中overload与override的区别。具有很好的参考价值,下面跟着小编一起来看下吧
以下是对C++中overload,override,overwrite的区别进行了详细的分析介绍,需要的朋友可以过来参考下
本文详细地描述了overload 和override的区别
PHP不支持方法和操作符重载。JAVA不支持操作符的重载(但是“+”实际上是一种操作符重载)
主要介绍了Java重写(Override)与重载(Overload)区别原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下