キーワード abstract で変更されたクラスを、抽象クラス、つまり抽象クラスと呼びます。次に例を示します。
抽象クラスA{…}
キーワード abstract で変更されたメソッドを、abstract メソッド、つまり、 abstract メソッドと呼びます。次に例を示します。
抽象 int max(int x,int y);
知らせ:
1) 抽象メソッドの場合、宣言のみが許可され、実装は許可されません。つまり、メソッド本体はありません。また、メソッドやクラスを変更するために Final と Abstract を同時に使用することはできません。また、static は使用できません。抽象メソッドを変更することはできません。つまり、抽象メソッドはインスタンス メソッドである必要があります。
2) 抽象クラスは抽象メソッドまたは非抽象メソッドを持つことができますが、非抽象クラスは抽象メソッドを持つことができません。
たとえば、クラス A の max() メソッドは抽象メソッドであり、min() メソッドは通常のメソッド (非抽象メソッド) です。
abstractclassA{abstractintmax(intx,inty);intmin(intx,inty){returnx<y?x:y;}}
抽象クラスの場合、new 演算子を使用してこのクラスのオブジェクトを作成することはできません。非抽象クラスが抽象クラスのサブクラスである場合は、親クラスの抽象メソッドをオーバーライドしてメソッド本体を指定する必要があります。それができない理由は、メソッドまたはクラスを変更するために Final と Abstract を同時に使用できる理由です。
抽象クラスを使用してオブジェクトを宣言できますが、new 演算子を使用してオブジェクトを作成することはできませんが、オブジェクトはそのサブクラス オブジェクトのアップキャスト オブジェクトになることができるため、サブクラスによってオーバーライドされたメソッドを呼び出すことができます。
注: 抽象クラスは抽象メソッドを持たない場合があります。抽象クラスがその抽象クラスのサブクラスである場合は、親クラスの抽象メソッドをオーバーライドすることも、親クラスの抽象メソッドを継承することもできます。