BLOG

【プログラマー 研修 Java】しょーの記録9

こんにちは!

しょーです!

今回からSQLについて書こうと思いましたが、

復習も兼ねてJavaについて書いていこうかなと思います。

【内容】

・Java復習

【所感】

今回のJavaについてですが、

もう一点気になる箇所がありましたので、

先日のテストの復習について書こうと思います。

内容は、継承時のコンストラクタについてなんですけどここに盲点があってひじょ~に悔しい思いをしました。

例えば、

class A{

     A(){

   System.out.println(“A”);

    }

 }

上記のクラスがあったとします。

中身はインスタンス化した場合にコンストラクタに記述している、

System.out.println(“A”);が呼び出されるようになっています。

このAクラスをBクラスへ継承したとします。

class B extends A{

 B(){

          System.out.println(“B”);
    }

上記のようになります。

その次に、メインメソッドでBクラスをインスタンス化します。

public static void main (String[] args) {

  B b = new B ();

}

最後に実行します。

すると、コンソールには、

AB

と、表示されます。

よくよく考えれば簡単な事でしたがここで僕は、

「メインメソッドにはBクラスしかインスタンス化してないし、Bクラスには”B”を表示するコンストラクタしかないのになぜ”A”まで表示されたのか」

って思っちゃいました。。。

BクラスがAクラスを継承しているので、

親クラスのAクラスの内容も引き継いでしまいます。

ただ、Bクラスには見えないですがAクラスのコンストラクタもちゃんと引き継いでいるのですね~

B(){
       super(); ←Aクラスのコンストラクタ

       System.out.println(“B”);

  }

上記のような形で見えないですがしっかりとsuper();が隠れています。

継承の基本的な事ですが、すっかり忘れていました。泣

今思い出してもとても悔しいですが、もう同じ間違いはしないでしょう!!

【最後に一言】

9月も気づいたらもう下旬に差し掛かってきてます。

特に今月は祝日が多いので余計に早く感じますね。。。

更新も疎かにならないようにします!!

それでは!!

BLOGトップへ戻る