@Override 的作用是:
创新互联公司网站建设服务商,为中小企业提供网站设计、成都网站制作服务,网站设计,网站托管、服务器托管等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联公司。如果bai想重写父类的方du法,比如toString()方法的话,在zhi方法前面加上@Override 系统可以dao帮你检查方法的正确性。
Override的用法:
Override:java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。
举例说明:
比如现在我们有一个基类:
现在我们编写一个Apple子类,继承这个基类,并且复写基类中的show_name()方法。
执行的结果就是会打印出Apple:2字样。
其实,在我们手工复写父类的方法时,容易把方法的参数记错,如果此时不加@Override的话,编辑器就不会提示你:例如我们不加这个标签,悄悄的把参数改为float型。
这个时候,其实我们并没有按照我们的意图成功复写方法,于是一个隐藏的bug就这样诞生了,相反加上Override的效果就是
IDE给出了错误提示,说明我们复写方法失败。
往往就是我们准备复写方法的时候结果,相反我们是重载了方法。
再比如:现在我们向Fruit类中添加一个私有方法,而在Apple中尝试复写
@Override private void grow(){ }
结果编译器会提示错误,这是一个非常低级的错误,但是有时候恰恰就不会被我们发现:那就是试着复写私有方法,但是当我们去掉Override标签的时候,编译器是不会报错的,而且可以执行。
其实Apple中的你所谓复写的grow只是一个针对于Apple本身的私有方法。完全是一个新的方法。
这就引出了一个问题,何为复写?
在面向对象中,只有接口和共有方法,继承方法才有复写,私有方法不可以复写,但是又想了一下,才明白:不是不可以复写,而是根本就不存在复写私有方法的概念!
这正是面向对象设计的初衷,私有方法本身就是为了封装在类内部,不希望别人来更改或者外部引用的。
以上就是java中的@Override有什么作用的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。