先弄清Overload和Override的概念(都是Java多态性的不同表现)
Overload 重载(同一个类中有相同的方法名)
注意点:
1.重载可以通过相同方法名不同的参数样式表现(不同的参数类型,不同的参数个数和不同的参数顺序)
2.不能通过访问权限、返回类型、抛出的异常进行重载(方法的异常类型和数目不会对重载造成影响)
3.如果是继承的重载,父类中的方法的访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
Override覆盖(子类跟父类【或接口】有相同的方法名)
注意点:
1.子类中方法名和父类的方法名必须相同,参数类型必须精确匹配(参数类型、个数和顺序都必须一样)
2.子类的方法的返回值类型必须和父类的方法返回值类型一致(或返回返回值类型的子类)
3.子类的方法所抛出的异常必须和父类方法的所抛出的异常一致,或者是其子类,或者不抛出
4.static方法不能覆盖
5.private方法也不能覆盖(否则在其子类中只是新定义了一个方法,并没有对其进行覆盖)
6.只要参数类型不一致,返回类型同与不同,此不为覆盖而是重载
covariant return(协变返回)
子类方法的返回类是父类方法的返回类型的子类才可以.
可参照:http://www.iteye.com/topic/20932(buaawhl)
PS:Tiger之前好像也可以,是JAVA5.0的新特性?
分享到:
相关推荐
现象: … java: 1801: method does not override a method from its superclass @Override… 原因: Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 ...
C# 中 override、abstract、virtual、interface 的比较 在 C# 编程语言中,override、abstract、virtual、interface 是四个关键字,它们之间存在着紧密的联系,我们经常会遇到 override、abstract、virtual 这三个...
静态(static)方法重写(override)
c# override new base 关系
override and overload difference
在使用eclipse开发时有时会遇到Override错误,这个错误已得到解决,不信你下载个试试?
resource override
Lua中没有类的概念,但是程序猿说要面向对象,然后就有类。程序猿说要继承 和override,然后就有了继承 和 override 。
Lua中没有类的概念,但是程序猿说要面向对象,然后就有类。程序猿说要继承 和override,然后就有了继承 和 override 。
Delphi面向对象:overload与override[文].pdf
C# 中的 new、abstract、virtual、override、sealed 关键字的区别和使用代码示例 摘要:本资源旨在对 C# 中的 new、abstract、virtual、override、sealed 关键字进行详细的解释和比较,并提供实践代码示例,以帮助...
对Java中@override个人理解阐述,希望能帮大家更好理解。
了解何时使用 Override 和 New 关键字(C# 编程指南)
有一些收集的demo演示,可以很好的立即其不同情况的使用和区别
$ npm install method-override API 注意在需要了解请求方法的任何模块之前使用此模块非常重要(例如,必须在csurf模块之前使用它)。 methodOverride(getter,选项) 创建一个新的中间件函数,以新值覆盖req....
override和重载的区别 希望对大家有帮助
NULL 博文链接:https://llying.iteye.com/blog/341552
很好很好的Java知识,一个关于Java标签的技术知识,非常的好用哦
图解C# new和override的区别.doc图解C# new和override的区别.doc图解C# new和override的区别.doc