Java中override和overload的区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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  新规则使以前的所有规则失效。

以上是关于Java中override和overload的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA Override和Overload的含义去区别

Overload和Override的区别

C#简述override和overload的区别

Override和Overload的含义去区别

Override和Overload的含义去区别

简述override和overload的区别