更新时间:2020-07-29 14:39:19 来源:极悦 浏览1810次
Override不是关键字,但是可以把它当做关键字来使用。当你想要覆写某个方法时,可以添加这个注解。在不小心重载而非覆写了该方法时,编译器就会生成一条错误信息。
简单的说 Override有如下好处:
(1)可以当注释用,方便阅读;
(2)编译器可以给你验证 Override下面的方法是否是你父类中所有的,如果不是则报错。例如,你想重写父类中的某个方法,如果没写 Override,而你下面的方法又写错了,比如参数类型个数或者方法名不同,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
拓展:Bruce的一个思考
《Thinking in java》的作者Bruce在讨论这个问题的时候,提到了一个问题就是override私有的方法的例子:
现在我们向Fruit类中添加一个私有方法,而在Apple中尝试复写
@Override
private void grow(){
}
结果编译器会提示错误,这是一个非常低级的错误,但是有时候恰恰就不会被我们发现:那就是试着复写私有方法,但是当我们去掉Override标签的时候,编译器是不会报错的,而且可以执行。
其实Apple中的你所谓复写的grow只是一个针对于Apple本身的私有方法。完全是一个新的方法。
这就引出了一个问题,何为复写?
在面向对象中,只有接口和共有方法,继承方法才有复写,私有方法不可以复写,其实根本就不存在复写私有方法的概念!
以上就是极悦java培训机构的小编针对“Javase基础入门视频教程之Override详解”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习