`
linxizeng
  • 浏览: 102282 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tiger学习 之 Override

阅读更多
先弄清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的新特性?



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics