Java言語の抽象メソッドと抽象クラスの定義における「abstract」というキーワードの役割とは何か
Javaのabstractキーワードは、抽象クラスと抽象メソッドを定義します。
- 抽象クラス:abstract キーワードを付けたクラスは抽象クラスと呼ばれます。抽象クラスはインスタンス化できないクラスであり、他のクラスの親クラスとしてのみ使用できます。抽象クラスには、抽象メソッドと非抽象メソッドを含めることができます。抽象メソッドは具体的な実装を持たないメソッドで、メソッドの宣言のみがあり、メソッド本体はありません。抽象クラスには、通常のフィールドと具体的に実装されたメソッドを含めることができますが、抽象クラスには少なくとも 1 つの抽象メソッドが必要です。
- 抽象メソッド: abstractキーワードで修飾されたメソッドは抽象メソッドと呼ばれます。抽象メソッドには具体的な実装はなく、サブクラスで実装する必要があります。サブクラスは抽象クラスを継承したら親クラスのすべての抽象メソッドを実装する必要があります、そうでなければサブクラスも抽象クラスとして宣言する必要があります。
抽象クラスや抽象メソッドは、コードの再利用性と拡張性を目的としており、共通したメソッドやフィールドを抽象クラスで定義し、サブクラスで具体的なロジックを実装することで、コードの再利用と柔軟性を高めます。さらに、抽象クラスは仕様またはテンプレートとして機能し、サブクラスが実装する必要があるメソッドを定義することで、規約を順守させられます。