<抽象クラス/インタフェース>
あいまいなクラスの定義
安全・便利なクラスを作るための道具
---------------
■クラスの作成
子クラス初級
親クラス応用
■クラスの利用方法
インスタンスnew
継承元extends
---------------
■親クラス作成の問題点
・詳細未定メソッドの存在
オーバーライド忘れ
→ オーバーライドの強制
未定義メソッドのある場合はコンパイルエラー
オーバーライドして定義するか、未定義のままabstractクラスにする
何もしないメソッドとの区別
→ 通常メソッドとの区別
【抽象メソッドの宣言】
アクセス修飾子 abstract 戻り値 メソッド名(引数リスト);
・自由に選べる利用法(new,extends)
意図しないnewの利用
→ newを禁止するクラス
【クラス抽象クラスの宣言】
アクセス修飾子 abstract class クラス名{...}
※抽象メソッドを含むクラスは抽象クラスで宣言する
※すべての抽象メソッドを確定しないとabstractを外せない
= newできない
■インタフェース
・すべてのメソッドが抽象クラス
・基本的にフィールドなし
例外public static final …
例)public static final double PI = 3.141592;
・多重継承できる
【インタフェース宣言】
アクセス修飾子 interface インタフェース名{...}
【インタフェースの実装1】
アクセス修飾子 class クラス名 implements インタフェース名{...}
【インタフェースの実装2】
アクセス修飾子 class クラス名 extends 親クラス implements インタフェース1,インタフェース2{...}