在android中使用super关键字

时间:2014-03-23 13:36:29

标签: java android

Android中超级关键字的特殊用途是什么?

我已经读过,如果你有一个重写的方法,并且想要使用父类的原始方法,你可以调用super。不管。

但是在我关注的例子中,本教程的作者称为super.setitle(" blah blah");在已被覆盖的oncreate方法中。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.setTitle("My Albums");
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     }

我认为超级是要覆盖某些东西,只是因为对我来说这似乎是添加标题的方式。?

感谢您的帮助。

4 个答案:

答案 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());
    }
}