Android中超级关键字的特殊用途是什么?
我已经读过,如果你有一个重写的方法,并且想要使用父类的原始方法,你可以调用super。不管。
但是在我关注的例子中,本教程的作者称为super.setitle(" blah blah");在已被覆盖的oncreate方法中。
@Override
public void onCreate(Bundle savedInstanceState) {
super.setTitle("My Albums");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
我认为超级是要覆盖某些东西,只是因为对我来说这似乎是添加标题的方式。?
感谢您的帮助。
答案 0 :(得分:3)
执行基类中的默认功能。在调用基类之后,您可以在重写版本中添加自己的逻辑。
答案 1 :(得分:1)
在覆盖方法中如果你想调用子类的函数然后使用“this”关键字,另一方面如果你想调用父类的函数,那么你应该在函数之前使用“super”关键字带点的名字。
在android中创建活动时,如果要在自己的逻辑或行为之前调用默认行为,则使用“super”关键字。
答案 2 :(得分:0)
super
与特定方法无关,而是与整个父类相关。这就是您的代码示例完全正确的原因。
答案 3 :(得分:0)
java中的关键字super允许您调用超类的方法实现。这用于在当前类中重写方法的情况,但目的是在超类中调用该方法。
e.g。
public class Person {
protected String name;
public Person(String name) {
this.name = name;
}
public String getDescription() {
return "Person: " + name;
}
}
public class Employee extends Person {
public Employee(String name) {
super(name);
}
public String getDescription() {
return "Employee: " + name;
}
public String getPersonDescription() {
return super.getDescription();
}
}
public class Main {
public static void main(String args[]) {
Employee brian = new Employee("Brian");
System.out.println(brian.getDescription());
System.out.println(brian.getPersonDescription());
}
}