(新手到Java,旧时代的C#家伙.)
我注意到@Override
Android示例代码中有很多用处.我认为所有Java方法都默认为"虚拟"?
然后做@Override
什么?
例:
private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
JRL.. 99
这是一个注释,您可以使用它来告诉编译器和IDE您希望该注释的方法是超类方法的重写.如果您犯了错误,它们会有警告/错误,例如,如果您打算覆盖方法但拼错它,如果注释在那里IDE或编译器会告诉您它实际上并不覆盖超类方法因此你可以确定原因并纠正拼写错误.
这对Android应用程序和活动来说更为重要,例如,所有调用都将基于活动生命周期 - 如果您没有正确覆盖生命周期方法,它们将永远不会被框架调用.一切都会正常编译,但你的应用程序将无法按照你想要的方式工作.如果添加注释,则会出现错误.
这是一个注释,您可以使用它来告诉编译器和IDE您希望该注释的方法是超类方法的重写.如果您犯了错误,它们会有警告/错误,例如,如果您打算覆盖方法但拼错它,如果注释在那里IDE或编译器会告诉您它实际上并不覆盖超类方法因此你可以确定原因并纠正拼写错误.
这对Android应用程序和活动来说更为重要,例如,所有调用都将基于活动生命周期 - 如果您没有正确覆盖生命周期方法,它们将永远不会被框架调用.一切都会正常编译,但你的应用程序将无法按照你想要的方式工作.如果添加注释,则会出现错误.
这段代码对于初学者谁真的想了解这个@Override
过程,这对你有帮助!(提醒Java的继承概念.)
例如,Fish
该类可能有两个子类:FreshwaterFish
和SaltwaterFish
.
这些子类具有Fish
该类的所有功能,但可以通过新的属性和行为或父类的修改行为进一步自定义对象Fish
.例如,FreshwaterFish
该类可能包括有关生活在淡水环境中的类型的信息(例如河流,湖泊,池塘或水坑).
类似地,SaltwaterFish
类可以自定义makeBabyFish()
方法,使得鱼在繁殖后(如超类中所定义)通过使用覆盖机制来吃它的配偶,如下所示:
public class SaltwaterFish extends Fish { @Override public void makeBabyFish(Fish fishSpouse, int numBabies) { // call parent method super.makeBabyFish(fishSpouse, numBabies); // eat mate eat(fishSpouse); } }
Override-Annotation只是您想要覆盖某个函数的编译器的提示.然后,如果函数存在,编译器将检查父类和接口.如果没有,您将收到编译错误.
它基本上只是一种安全机制.
供参考,请参阅本文(覆盖在中间某处解释)