2013-02-18 50 views
0

如果我有一个类理解方法在超级调用()调用

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中调用,然后调用Foo()的构造函数并将名称正确设置为s?这是一个普通的super()调用吗?调用正在扩展的类的构造函数?

回答

2

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

1

super总是指您的父类。代码执行的顺序将是如下:

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

有一个默认的构造函数,所以没有super()(不带参数的IE),因为你无法创建FooBar的实例而没有String参数