Java中super
关键字的含义和用法是什么?
答案 0 :(得分:57)
super
是Java中的关键字。它指的是直接的父母财产。
super() //refers parent's constructor
super.getMusic(); //refers to the parent's method
答案 1 :(得分:34)
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()
将调用父的构造函数,并且只能从子类的构造函数中调用它(如果我错了,有人会纠正我)。
答案 2 :(得分:4)
当您从另一个类继承时,您可能希望覆盖从您继承的类中的方法。
执行此操作时,有时需要首先调用覆盖的方法,然后再执行某些操作。在这种情况下,你写super();
以下是一些关于继承的链接,它在编程中非常重要: Wiki's Inheritance
答案 3 :(得分:2)
超级关键字并非特定于Android。 它是属于OOP的概念,表示您使用它的类的父类。在Android中,当您创建自己的Activity或组件时,它最有用,并允许您在实现自己的Activity之前调用默认行为。
例如,在重写Activity onPause,Resume,onStop等方法时,必须先调用超级方法。
有关更多信息,我建议您查看面向对象编程的书籍以及Java Programmation书籍,这些书籍应该更深入地介绍这个主题。
答案 4 :(得分:2)
简单地说,名称暗示“超级”指向超类即直接父类。
它意味着获得超类的立即实例,它可能是方法或变量。
正如我指出的super可用于检索直接父类的实例,以防多级继承,如果您尝试获取极端父类的实例,它将无效。
只有在父类和子类具有相同名称和类型的方法时才需要超级
您可能知道,一旦以相同的方式声明类,编译器将自动创建构造函数。构造函数内部的编译器将创建super()作为第一个语句......
希望它帮助你...祝你有美好的一天(S)