インタフェースとクラス
クラスの抽象度ヒエラルキー
インタフェース>抽象クラス>具象クラス
⑴インタフェース
他クラスからの「扱い方」を定義したもの
(クラスから型だけを取り出したもの)
interface Sample{
static final フィールド
public 抽象メソッド
}
・多重実現・多重継承 可能
・インタフェースはポリモーフィズムのために存在する。
・インスタンス化できない
⑵クラス
①抽象クラス
インタフェースとクラスの両方の性質を持ったクラスで、抽象メソッドが存在する。
抽象クラス{
様々なフィールド
具象メソッド{}
抽象メソッド
}
・抽象クラス extends 抽象クラス
・具象クラス extends 抽象クラス
・インスタンス化できない(インタフェースと同じ)
②具象クラス
具象メソッドのみ存在する。(抽象メソッドがあってはいけない)
具象クラス{
様々なフィールド
具象メソッド{}
}
・抽象メソッドは実装を持たないため、具象クラスとなるサブクラスが抽象メソッドをオーバーライドして、実装を提供しなければならない。