采乐可以长期使用吗:Overload和Override的区别

来源:百度文库 编辑:高考问答 时间:2024/05/02 08:01:29
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

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不可以,参数列表必须完全一样。