0
public class A {
  public A(){
    System.out.println("A created");        
  }
  public static void main(String[] args) {
    new B();
  }
}

class B extends A{
    public B(){
        System.out.println("B created");
    }       
}

上記のプログラムの出力は次のようになります

A created

B created

コンストラクター A() がどのように呼び出されるのか理解できません。B() で呼び出されるスーパーはありません。しかし、それでも A() が呼び出されます。

4

2 に答える 2

7

classが class をB拡張すると、デフォルトAでコンストラクターが呼び出さA( )れます。

A createdこれが、プログラムが の前に出力する理由B createdです。

于 2013-03-19T19:30:13.373 に答える
2

子クラスでsuper()は、オブジェクトが適切に構築されるように、暗黙的に自動的に呼び出されます。

于 2013-03-19T19:31:05.777 に答える