前回のまとめ
- 型は大別してプリミティブ型と参照型の2つ。
- プリミティブ型は「箱」のイメージでOK。代入は「値をコピー」
- 参照型は「商品タグ」のイメージ。インスタンスを指し示すのがインスタンス名(変数名)。代入は「商品タグが同じところに繋がる(ポインターのコピー)」
- プリミティブ型と参照型では、代入や比較等で(初学者にとって)直感的でない違いがあるので注意する。この違いはコードを実行して確かめること。
- 文字列や配列は参照型。よく使われるので「特別扱い」されている(使いやすくなっている)。
クラスの継承
継承のポイント
- 継承とは、既存のクラスをもとに新しいクラスを定義する機能のこと。
- 元となるクラスをスーパークラス(親クラス)、新しく定義するクラスをサブクラス(子クラス)という。
- サブクラスはスーパークラスのメンバー(フィールドとメソッド)を受け継ぐ。
- サブクラスでは新しくメンバーを加えることができる。
スーパークラスのメソッドをサブクラスで書き換える(動作を変える)ことができる(オーバーライド)。オーバーライドするときはアノテーションをつけたほうが良い。
- サブクラスのインスタンスは、スーパークラスのインスタンスとして扱うことができる。
- スーパークラスを指定していなくても(指定していない場合は)、Objectクラスがスーパークラスになる。つまり、すべてのクラスの元をたどるとObjectクラスに行き着く。
- サブクラスからスーパークラスのメンバーを呼び出すことができるが、その場合に「super」を使う場合がある。
継承の利用例1
- スーパークラス: Rectangle.java
- サブクラス: Cuboid.java
- 利用例: Main1.java
継承の利用例2
- スーパークラス: Book.java
- サブクラス1: Comic.java
- サブクラス2: Magazine.java
- 利用例: Main2.java