Java - 抽象クラス

抽象クラス

抽象クラスとは、抽象メソッドを 1 つ以上持つクラスです。そのクラスだけでは意味を持たず、サブクラスに継承されることで初めて機能します。

抽象メソッドとは、以下のように記述されるメソッドです。abstract の後に、戻り値の型、メソッド名、引数の型、引数の数のみを定義し、処理内容は実装されません。具体的な処理内容は、抽象クラスを継承するサブクラスで実装されます。

abstract class クラス名{
  abstract 戻り値の型 メソッド名(引数の型 引数);
}
抽象クラス

抽象クラスの特徴は以下のとおりです。

  • 抽象クラスを継承したサブクラスは、抽象クラスにある抽象メソッドのオーバーライドをしなければならない
  • 抽象クラスを継承したサブクラスは、コンストラクタを記述しなければならない
  • 抽象クラスは、オブジェクトを生成できない
  • 抽象クラスは、多重継承はできない

このような抽象クラスが存在するのは、チームで開発する場合において、実装レベルのルールを作るためです。抽象クラスは強制的なオーバーライドを必要とするため、メソッド名の統一や、ロジックの共通化などのメリットがあります。これらはチームで開発する場合に一定の整合性(品質)を保つために整備しなければならない課題ですが、プログラムの仕様としてルール化することができます。

関連記事