Overload和Override的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Overload和Override的区别相关的知识,希望对你有一定的参考价值。

Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 参考技术A 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不可以,参数列表必须完全一样。
参考技术B Override是重写:方法名称、参数个数,类型,顺序,返回值类型都是必须和父类方法一致的。它的关系是父子关系
Overload是重载:方法名称不变,其余的都是可以变更的。它的关系是同一个类,同一个方法名,不同的方法参数或返回值。
备注:它们都是是Java多态性的不同表现
参考技术C Overload
一般是说超过限制了,例如超载货车
an
overloaded
truck
Override
是推翻,见过的用法例如在操控权上的推翻
参考技术D 重写Override是父类与子类之间多态性的一种表现,重载Overload是一个类中多态性的一种表现。
在Java语言规范里,一个方法的特征仅包括方法的名字、参数的数目和种类,而不包括返回类型、参数的名字以及抛出的异常。Java编译器检查方法的重载Overload时会根据这些条件判断两个方法是否重载了。
但是Java编译器在检查方法的重写时,则会进一步的检查两个方法的返回类型和抛出的异常是否相同。

Java中override和overload的区别是啥?

override是方法的重写,通常发生在子类与父类之中,指的是子类中定义了一个与父类返回值类型,参数类型完全相同的方法
overload是方法的重载,通常在同一个类中,定义了一堆方法名相同,但返回值可能不同,参数也可能不同的方法
参考技术A 重写Override是父类与子类之间多态性的一种表现,重载Overload是一个类中多态性的一种表现。

在Java语言规范里,一个方法的特征仅包括方法的名字、参数的数目和种类,而不包括返回类型、参数的名字以及抛出的异常。Java编译器检查方法的重载Overload时会根据这些条件判断两个方法是否重载了。

但是Java编译器在检查方法的重写时,则会进一步的检查两个方法的返回类型和抛出的异常是否相同。
参考技术B

overload 和 override 两个词都是含有表示“超过”或“高于”的 over  的合成词,所以它们的区别在于 load 和 ride 上。

1、load 指“加载”或“负重”,overload 的意思就是“超载”或“加重负担”,例如:

    Don't overload the boat or it will sink.  别超载,否则船会沉。

    Large meals overload the digestive system.  吃得太饱会加重消化系统的负担

    The bar waiter was already overloaded with orders.  这位酒吧侍者已经应付不过来客人的点单。

2、ride 指“控制”或“驾驭”,override 就是“不在控制范围之内”或“超越驾驭范围”。例如:

    Big companies think they can sometimes override local opinion.  大公司认为它们对地方舆论有时候可以置之不理。

    An override of the veto appears unlikely.  看来推翻这项否决的可能性很小。

    The new rule overrides all the previous ones  新规则使以前的所有规则失效。

以上是关于Overload和Override的区别的主要内容,如果未能解决你的问题,请参考以下文章

override和overload的区别

简述override和overload的区别

Overload和Override的区别

Overload和Override的区别

override和overload的区别

Java中override和overload的区别是啥?