0

我是 Android 开发和 Java 的新手。我不明白这行代码的实际含义以及它的意义...请帮助...

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
4

1 回答 1

1

这意味着,onCreate 是超类中的一个方法,即您当前类正在扩展的类。

@Override是一个注解,它确保 onCreate 在超类中,否则编译器会报错。此注释可确保您不会弄乱方法的语法,并且在运行时难以找到问题所在。

super.onCreate(savedInstanceState);

该语句首先调用超类 onCreate,然后继续。

@Override 在这里解释

class SuperClass
{
    public void onCreate()
    {
    System.out.println("Super");
    }
}

public class Apps extends SuperClass
{
    @Override
    public void onCreate()
    {
    super.onCreate();
    System.out.println("Sub");
    }

    public static void main(String[] args)
    {
    SuperClass supRef = new Apps();
    supRef.onCreate();
    }

}

现在,Apps 是一个子类,SuperClass 是由 Apps 扩展的类,所以这是超类。

现在,该程序的进一步输出将是:

Super
Sub

希望这能解释对 super.onCreate() 的调用;

现在假设您在 Apps 中将 onCreate 定义为:

public void onCreate(int h)

没有@Override 编译器不会抱怨,输出将是

Super

所以你将不得不重新检查你的代码,或者调试为什么不打印 Sub。

最后一件事,这些是 OOP 和 Java 的基础知识,我认为您应该在开始使用 Java 编码之前先阅读这些概念。

于 2013-10-19T14:28:19.010 回答