2016年10月22日土曜日

<Java>コンストラクタの継承はない

Javaの入門書を読み直して、「あー、そうだったね。」という点を書いてみます。

  • メソッドのシグネチャは下記3つ
    1. 戻り値の型
    2. メソッド名
    3. 引数の型
  • 親クラスが持つ、引数の数が違うコンストラクタは、子クラスでは呼び出せない
    ※ メソッドとは違って、引き継がれない(透けて見えることがない) ※ superで呼び出すことはできます。
    ※ (追記)まぁ、コンストラクタ名が違うので当たり前ですよね。。。
  • 親クラスで引数を持つコンストラクタが定義された場合、子クラスで呼び出さないとコンパイルエラーとなる
    ※ 正確にいうと、親クラスに対応するコンストラクタがないと、子クラスのインスタンス生成時にコンパイルエラーになるよって話

継承は、メソッドだけでなく、コンストラクタにも縛りがあり、親子間の共通化が徹底されている(保証されている)ことを再認識しました。

0 件のコメント:

コメントを投稿