■ 抽象クラス
(1) abstract を記述する。
(例)
public abstract class Test(){ … }
→ アクセス修飾子は public なしでも問題なし。
→ クラス内に抽象メソッドがなくても問題なし。
(↑ 味がないかもしれない。普通は抽象メソッドが存在し、サブクラスでオーバーライドされる)
(2) オブジェクトは作成できない(newは使わない)
→ 実装(new によるオブジェクト作成)は、サブクラスで行う。
(3) サブクラスで、抽象メソッドを実装する。
→ 基本的には、抽象クラスの抽象メソッドをサブクラスで全て実装(具象メソッドに)する。
→ 一部の抽象メソッドのみ実装した場合(抽象メソッドが残っている場合)は、サブクラスはスーパークラス同様に抽象クラスになる。(さらにサブクラスで具象クラスになる必要がある)
■ 抽象メソッド
(1) abstract を記述する。
(2) メソッドとしての処理内容がなく、セミコロン(;)で終了する。
(例)
・ public abstract void show(int n);
・ abstract int getInt();
→ アクセス修飾子は public なしでも問題なし。