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 の super() 呼び出しは、Foo() のコンストラクターを呼び出し、名前を適切に s に設定しますか? これは単純な super() 呼び出しが行うことですか? 拡張するクラスのコンストラクターを呼び出しますか?

4

2 に答える 2

2

はい、それはまさにそれが行うことです。スーパー/ベースクラスのコンストラクターを呼び出します。

于 2013-02-18T18:55:45.760 に答える
1

super常に親クラスを参照します。コード実行の順序は次のようになります。

new FooBar("Jim");-> super(s);->Foo(String s)設定しますname=s

デフォルトのコンストラクターがないため、引数なしのインスタンスを作成できないため、(つまり、引数なしで)存在しません。super()FooBarString

于 2013-02-18T18:55:39.613 に答える