コードサンプル帳:
1つの パッケージcom.learnJava.test。 2 3 / ** 4 * @Author zhuchangli 5 * @Date 2019年9月14日 6 * * / 7 クラスゲーム{ 8 ゲーム(int型I){ 9 のSystem.out.println( "ゲームコンストラクタ" )。 10 } 11 } 12 13 クラスのボードゲームは延びゲーム{ 14 ボードゲーム(int型I){ 15 超(I)。 16 のSystem.out.println( "ボードゲームコンストラクタ"); 17 } 18 } 19 パブリック クラスチェス延びボードゲーム{ 20の チェス(){ 21 スーパー(11 )。 22 のSystem.out.println( "チェスコンストラクタ" )。 23 } 24 25 公共 静的 ボイドメイン(文字列[]引数){ 26の チェスX = 新しいチェス()。 27 } 28 }
結論:あなたがいない場合はボードゲーム()は任意のゲーム()コンストラクタフォームを見つけることができませんコンパイラが文句を言うだろう、基底クラスのコンストラクタを呼び出します。
演習6:Chess.javaは、段落の前に証明します。
コメントアウト:ボードゲームのクラスのスーパー(i)が証明することができます。
演習7:すべての初期化を行うことを特徴とする(1)A及びBがデフォルトのパラメータ置換コンストラクタで構成されていること、コンストラクタは、Cで書かれているので、運動5を変更し、。
私の答え:
パッケージcom.learnJava.test; / ** * @Author zhuchangli * @Date 2019年9月14日 * * / クラスARTA { ARTA(INT I){ するSystem.out.println( "コンストラクタ" )。 } } クラス ArtBは延びARTA { ArtB(int型I){ スーパー(i)を、 System.out.println( "Bコンストラクタ" )。 } } パブリック クラス CartoonCは延びArtB { CartoonC(int型I){ スーパー(私); System.out.println( "Cコンストラクタ" )。 } パブリック 静的 ボイドメイン(文字列[]引数){ // ArtB B =新しいArtB(10)。 CartoonCのC = 新しい CartoonC(10 )。 } }
回答:
1つの パッケージcom.learnJava.test。 2 3 / ** 4 * @Author zhuchangli 5 * @Date 2019年9月14日 6 * * / 7 クラスA7 { 8 A7(チャー Cは、int型のI){ 9 のSystem.out.println(「A7(CHAR、INT )」); 10 } 11 } 12 13 クラス B7は延びA7 { 14 B7(列D、フロートJ){ 15 超(」」、10 ); 16 System.out.println( "B7(文字列、J)" ); 17 } 18 } 19 20 パブリック クラス C7は延びA7 { 21 プライベート チャーCと、 22 プライベート int型のJ; 23 C7(char型、int型i)は{ 24 超(I)。 25個の C = 。 26 J = I; 27 } 28 29 B7のB7 = 新しい B7( "HI"、0.7f ); 30 公衆 静的 ボイドメイン(文字列[]引数){ 31 のC7 C7 = 新しい C7( 'A'、100 ); 32 } 33 }
私は不明であった:あなたは、クラスと初期化されたB7 C7クラスを定義することができます。B7及びC7クラスとクラスは、A7を継承しています。
練習8:(1)のみ非デフォルトコンストラクタであるベースクラスを作成してから派生したクラスを作成し、既定のコンストラクタとその非デフォルトコンストラクタ。これは、派生クラスのコンストラクタで基底クラスのコンストラクタを呼び出します。
回答:
1つの パッケージcom.learnJava.test。 2 3 / ** 4 * @Author zhuchangli 5 * @Date 2019年9月14日 6 * * / 7 8 クラスA8 { 9 プライベート チャーA。 10 プライベート int型I; 11 A8(チャー C、INT J){ 12 =のC; 13 、I = J。 14 のSystem.out.println( "A8(CHAR、INT)" )。 15 } 16 } 17 18 パブリック クラス C8は延びA8 { 19 プライベート チャーCHと、 20 プライベート int型のk。 21 C8(){ 22 超( 'Z'、0 ); 23 のSystem.out.println( "C8()" ); 24 } 25 C8(char型、int型i)は{ 26 超(I)。 27 CH = A。 28 K = I。 29 のSystem.out.println( "C8(CHAR、INT)" ); 30 } 31 32 公共 静的 ボイドメイン(文字列[]引数){ 33 C8のC8 = 新しいC8()。 34の C8 C81 = 新しい C8( 'A'、100 ); 35 } 36 }
不明な点:C8で()、デフォルトコンストラクタは、基本クラスのメソッドを呼び出す方法を知りません。