理解super()调用中的方法调用

时间:2013-02-18 18:53:02

标签: inheritance superclass

如果我有课

class Foo{
    String name;
    public Foo(String s){
        name=s;
    }

    public void setName(String s){
        name=s;
    }

    public String getName(){
        return name;
    }
}

然后

class FooBar extends Foo {
    public FooBar(String S){
        super(s);
    }
}

我的主要方法是

public static void main(String[] args){
    FooBar item1 = new FooBar("Jim");
}

在类FooBar中调用super()然后调用Foo()的构造函数并正确地将名称设置为s吗?这是普通的super()调用吗?调用正在扩展的类的构造函数?

2 个答案:

答案 0 :(得分:2)

是的,这正是它的作用。它调用super / base类的构造函数。

答案 1 :(得分:1)

super始终引用您的父类。代码执行顺序如下:

new FooBar("Jim"); - > super(s); - > Foo(String s)将设置name=s

有默认构造函数,因此没有super()(即没有参数),因为如果没有FooBar您无法创建String的实例参数