java 継承
- 親 = スーパークラス
- 子 = サブクラス(複数可)
*子に対して親は1つのみ
クラスを拡張する
既存のクラスをもとに新しいクラスを作成
class サブクラス名 extends クラス名{ 処理 }
コンストラクタ
オーバーライド
オーバーライドの動き
サブクラス名 変数 = new サブクラス名(); // サブクラスのメソッドが機能
オブジェクトをさす変数のクラスとオブジェクト自身のクラス両方がサブクラスの場合サブクラスのメソッドが機能
スーパークラス名 変数 = new サブクラス名(); // サブクラスのメソッドが機能
変数のクラスがスーパークラスでオブジェクトのクラスがサブクラスの場合サブクラスのメソッドが機能
*共通のメソッド(オーバーライド)のみサブクラスのメソッドを呼び出せる / その他はスーパークラスのみ呼び出される
クラス名 変数 = new クラス名(); // スーパークラスのメソッドが機能
変数のクラスとオブジェクトのクラス両方がスーパークラスの場合はスーパークラスのメソッドが機能
final
finalをつけると変更不可になる
クラスにfinalをつけるとサブクラスを作れない( 拡張不可 )
final class クラス名
フィールド変数にfinalをつけると値は変更不可になる( 定数 constant )
static final 型 変数名 = 値;
スーパークラスでメソッドにfinalをつけるとサブクラスで全く同じメソッドを作成してもオーバーライドされない
public final void メソッド名(){ 実行処理 }