問題を確認するためのコード;
クラスA { 静的{ System.out.print( "1" )。 } パブリックA(){ System.out.print( "2" )。 } } クラス Bは延びA { 静的{ System.out.print( "A" ); } パブリックB(){ System.out.print( "B" )。 } } パブリック クラスXXOO { 公共 静的 ボイドメイン(文字列[] ARS){ BはB = 新しいB(); } }
結果コードとして出力します:1a2bを。
つまり、サブクラスの初期化時には、親クラスのコンストラクタを呼び出すことです。
それは考慮することが可能である:インスタンス化可能サブクラスのオブジェクトは、親オブジェクトを作成するために行くのだろうか???
この質問では、我々は、コードを変更しました。
抽象 クラスA { 静的{ System.out.print( "1" )。 } パブリックA(){ System.out.print( "2" )。 } } クラス Bは延びA { 静的{ System.out.print( "A" ); } パブリックB(){ System.out.print( "B" )。 } } パブリック クラスXXOO { 公共 静的 ボイドメイン(文字列[] ARS){ BはB = 新しいB(); } }
コードの結果である:1a2b。
私たちは、このを通じて、我々は以前の推測を否定することができ、それは抽象クラスをインスタンス化することはできません知っています。
ただ務めコンストラクタ一度と呼ばれるサブクラスの例としては、親インスタンスを作成されません。