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的区别的主要内容,如果未能解决你的问题,请参考以下文章