【インターフェース/interface】とは
・境界面、接点、連絡役、橋渡し、などの意味を持つ
・何かと何かが接する部分、もしくはその間
・クラスに含まれるメソッドのひとつ
・メソッドの型と変数のみを定義している
・メソッドの具体的な処理内容は記述していない
・メソッドを利用する直前で処理内容を記述することが可能
・複数のインターフェースを継承し、新しいインターフェースを作ることも可能(多重継承というらしい)
(例)インターフェースの宣言/実装
『宣言』
→ interface インターフェース名 {}
『実装』
→ class クラス名 implements インターフェース名{}
【抽象クラス/abstract】とは
・abstract:抽象、の意
・抽象メソッドを1つ以上持つクラスのこと
・定義のみを宣言するメソッド(メソッド名・引数など)
・具体的な処理内容を記述しないメソッド
・メソッドのオーバーライドが可能
※オーバーライド:親クラスのメソッドをサブクラスで書き換え(上書き)すること
・直接のインスタンス化が不可
・多重継承が不可
(例)抽象クラス/抽象メソッドの宣言
『抽象クラス』
→ abstract class クラス名{}
『抽象メソッド』
→ abstract 戻り値の型 メソッド名(引数の型 引数名);
抽象クラスのメリットとして、
”抽象メソッドのオーバーライドによって、実装時に『挿入場所は決まっていないがいずれ必要になるメソッド』を予め宣言する。詳細の定義は後のクラスで定義する。という実装が可能”
・・・だそうだ。言葉だけだとふんわりとしか想像できないので、一旦この辺は課題とする。