无法理解JAVA代码行

时间:2013-10-19 14:23:15

标签: java oncreate

我是Android开发和Java的新手。我不明白这行代码究竟意味着什么,它的意义是什么......请帮助......

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

1 个答案:

答案 0 :(得分:1)

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

@Override是一个注释,它确保onCreate属于超类,否则编译器会抱怨。这个注释确保您不会弄乱方法的语法,并且在运行时很难找到问题所在。

super.onCreate(savedInstanceState);

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

@Override explained here

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编写代码之前,你应该首先阅读这些概念。