为什么onCreate被覆盖?

时间:2015-03-17 10:03:05

标签: java android

我对Androids onCreate方法有疑问。我知道Activity已经扩展,onCreate()是在Android开发人员指导状态(http://developer.android.com/reference/android/app/Activity.html上的类概述)时实现的。但为什么我们使用@Override?而且如果我想参考那个方法我应该使用哪个词?我应该说onCreate() is Overrided还是onCreate() is implemented

 public class MainActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     }

3 个答案:

答案 0 :(得分:2)

onCreate被"被覆盖"因为Activity有一个现有的实现,您的类MainActivity正在替换它自己的实现。你会说"实施"如果方法仅在接口中声明,但超级类中没有实现,则替换。

注释@Override是编译器的可选(但推荐)提示,以下方法签名必须存在于您正在扩展的超类或接口中。如果不是这种情况,将导致编译错误。它也暗示了开发人员这种方法也存在于超类中。

答案 1 :(得分:1)

@Override是一个注释,如果方法的签名不匹配(例如,如果省略参数savedInstanceState),将抛出编译错误,这是一个重写方法被标记。

此外,该方法未实现,因为它已在Activity中实现(由super.onCreate(savedInstanceState)调用),重写

我是否回答了你的问题?

答案 2 :(得分:0)

你必须覆盖该方法,因为它不是直接在超类中实现的。你可以说“它被覆盖了”。