abstract(抽象クラス)とは
抽象メソッドを一つ以上もつクラスのこと。
抽象メソッドとは、具体的な処理を記述せずに、引数やメソッド名の定義のみを宣言するメソッド。
抽象クラスの宣言.java
abstract class クラス名{}
抽象メソッドの宣言.java
abstract 戻り値の型 メソッド名(引数の型 引数名);
特徴
⭕️スーパークラスのメソッドをサブクラスでオーバーライド(書き換え)できる。
❌クラスの多重継承できない。
❌直でインスタンス化ができない。
interface(インターフェイス) とは
クラスに含まれるメソッドの具体的な処理を記述せずに、変数とメソッドの型のみを定義したもののこと。
インターフェイスの宣言.java
interface インターフェース名{}
インターフェイスの実装.java
class クラス名 implements インターフェース名{}
特徴
⭕️メソッドの型だけ先に記述し、使用直前に処理を記述できる。
⭕️インターフェイスの多重継承OK。
イメージ
抽象クラス
孫悟空(スーパークラス)が孫悟飯(サブクラス)、孫悟天(サブクラス)の複数名に孫という苗字を引き継げる。
また、悟飯が婿入りすれば苗字が鈴木へ書き換えられる(オーバーライド)。
インターフェイス
悟空からサイヤ人、チチから地球人という仕様を悟飯が引継ぎできる。
明確な遺伝子は、直前に決めれる。