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