ビデオ: java入門 第14回 抽象クラスとインターフェース 2024
Javaの 抽象クラス は、 抽象メソッド 、 は、本体を持たない単純なメソッド宣言です。つまり、クラスまたはメソッドを実装する実行可能コードはありません。抽象メソッドは、メソッドの戻り型とパラメータリストを宣言していますが、メソッドの実際の実装を提供していない、メソッドのプロトタイプのようなものです。
抽象クラスをインスタンス化することはできません。ただし、抽象クラスを継承するサブクラスを作成し、抽象クラスで定義された抽象メソッドの実装を提供することができます。サブクラスをインスタンス化できます。
<! - 1 - >抽象メソッドを作成するには、修飾子抽象を指定し、メソッド本文をセミコロンに置き換えます。
public abstract return-type method-name(parameter-list);
ここに例があります:
public abstract int hit(int batSpeed);
抽象クラスを作成するには、クラス宣言で抽象クラスを使用し、少なくとも1つの抽象メソッドをインクルードします。例:
public abstract class Ball {public abstract int hit(int batSpeed);}
抽象クラスからサブクラスを作成することができます。 public class BaseBall extends Ball {public int hit(int batSpeed){//ここでヒットメソッドを実装するコード}}
抽象クラスをサブクラス化する場合、サブクラスは、抽象クラスにおける各抽象メソッドの実装。つまり、各抽象メソッドをオーバーライドする必要があります。抽象クラスは、2つ以上のサブクラスのスーパークラスとして使用されるジェネリック型を作成する場合に便利ですが、スーパークラス自体は実際のオブジェクトを表しません。たとえば、すべての従業員が給与または時間のいずれかである場合、抽象Employeeクラスを作成し、それをSalariedEmployeeおよびHourlyEmployeeサブクラスの基本クラスとして使用することは理にかなっています。
<! - 抽象クラスに関するいくつかの追加の詳細があります:
抽象クラスのすべてのメソッドが抽象クラスである必要はありません。クラスはメソッドのいくつかを実装できますが、他のメソッドは実装できません。実際に、クラスに抽象メソッドがない場合でも、抽象メソッドとして宣言することはできます。しかし、この場合、クラスはインスタンス化できません。
プライベートメソッドは抽象クラスにはできません。すべての抽象メソッドは公開されている必要があります。クラスは抽象クラスでも最終クラスクラスでもありません。