38

superJava中关键字的含义和用法是什么?

4

5 回答 5

63

super是 Java 中的关键字。它指的是直系父母的财产。

super()            //refers parent's constructor
super.getMusic();  //refers to the parent's method

- 阅读更多super

于 2011-02-28T11:30:02.453 回答
39

super关键字引用Object当前对象的父类(隐式)的实例。当您覆盖子类中的方法但仍想调用父类中定义的方法时,这很有用。例如:

class ClassOne { 
     public say() { 
      System.out.println("Here goes:");
  }
}

class ClassTwo extends ClassOne { 
          public say() {
            super.say();
            System.out.println("Hello"); 
   } 
 }

现在,new ClassTwo().say()将输出:

Here goes:
Hello

正如其他人提到的,super()将调用父类的构造函数,并且只能从子类的构造函数中调用(如果我错了,请纠正我)。

于 2011-02-28T11:33:16.870 回答
4

super 关键字并非特定于 Android。它是属于OOP的一个概念,代表你使用它的类的父类。在 Android 中,当您创建自己的 Activity 或组件时,它最有用,并允许您在实现之前调用默认行为。

例如,当您覆盖 Activity onPause、on Resume、onStop 等方法时,必须先调用超级方法。

有关更多信息,我建议您查看面向对象编程的书籍以及 Java 编程书籍,它们应该更深入地涵盖该主题。

于 2011-02-28T11:31:00.760 回答
4

当您从另一个类继承时,您可能希望从您继承的类中覆盖一个方法。

这样做时,您有时需要先调用被覆盖的方法,然后再执行某些操作。在这种情况下,你写 super();

这里有几个关于继承的链接,在编程中非常重要: Wiki's Inheritance

Oracle 的简短说明

于 2011-02-28T11:31:04.240 回答
2
  1. 简单地说,顾名思义,“super”指向超类,即直接父类。

  2. 它旨在获取超类的直接实例,它可以是方法或变量。

  3. 正如我指出的那样,在多级继承的情况下,super 可用于检索直接父类的实例,如果您试图获取极端父类的实例,它将不起作用。

  4. 仅当父类和子类具有相同名称和类型的方法时才需要 super

  5. 您可能知道,一旦声明类,编译器将自动创建构造函数,super() 将由编译器在构造函数中作为第一条语句创建......

希望对您有所帮助...祝您有美好的一天(S)

于 2013-07-26T14:26:32.027 回答