クラスの継承

前回のまとめ

  • 型は大別してプリミティブ型と参照型の2つ。
  • プリミティブ型は「箱」のイメージでOK。代入は「値をコピー」
  • 参照型は「商品タグ」のイメージ。インスタンスを指し示すのがインスタンス名(変数名)。代入は「商品タグが同じところに繋がる(ポインターのコピー)」
  • プリミティブ型と参照型では、代入や比較等で(初学者にとって)直感的でない違いがあるので注意する。この違いはコードを実行して確かめること。
  • 文字列や配列は参照型。よく使われるので「特別扱い」されている(使いやすくなっている)。

クラスの継承

継承のポイント

  • 継承とは、既存のクラスをもとに新しいクラスを定義する機能のこと。
  • 元となるクラスをスーパークラス(親クラス)、新しく定義するクラスをサブクラス(子クラス)という。
  • サブクラスはスーパークラスのメンバー(フィールドとメソッド)を受け継ぐ。
  • サブクラスでは新しくメンバーを加えることができる。
  • スーパークラスのメソッドをサブクラスで書き換える(動作を変える)ことができる(オーバーライド)。オーバーライドするときはアノテーションをつけたほうが良い。

  • サブクラスのインスタンスは、スーパークラスのインスタンスとして扱うことができる。
  • スーパークラスを指定していなくても(指定していない場合は)、Objectクラスがスーパークラスになる。つまり、すべてのクラスの元をたどるとObjectクラスに行き着く。
  • サブクラスからスーパークラスのメンバーを呼び出すことができるが、その場合に「super」を使う場合がある。

継承の利用例1

クラス図1

継承の利用例2

クラス図2