2016-12-30 8 views
1
// how is it call abstract class constructor when i create subclass object ? 
abstract class D { 
    D() { 
     System.out.println("called abstract class D constructor");//print 
    } 
} 
public class DemoAbs extends D { 
    DemoAbs() { 
     System.out.println("called DemoAbs class constructor"); 
    } 
    // how is it call abstract class constructor when i create subclass object ? 
    public static void main(String[] args) { 
     DemoAbs d=new DemoAbs(); 
    } 
} 
+0

オブジェクトを作成するためには、それはあなたの親コンストラクタをObjectのコンストラクタに渡して呼び出すでしょう... – SMA

答えて

0

サブクラスのオブジェクトを作成するたびに、サブクラスのコンストラクタは、暗黙的にsuper()を使用してスーパークラスコンストラクタを呼び出します。親クラスのコンストラクタがパラメータを受け入れる場合は、明示的にsuper(params ...)を呼び出す必要があります。 それ以外の場合は、コンパイルエラーが表示されます。

0

、それが最初のスーパークラスのコンストラクタがサブクラスのコンストラクタの残りの部分が実行された後、スーパークラス内のすべての変数を初期化するために呼び出されることを意味し、super()を呼び出します。

2

それは、コンストラクタのチェーンと呼ばれています:

Constructor Chaining in Java

Java Constructor Chaining

:あなたが明示的に

あなたが通過する必要がありthis() OR this(<with args>) OR super(<with args>)を呼び出さない限り、コンストラクタで

非常に最初の行はsuper()です

関連する問題