Javaちょこっとリファレンス
HOME > abstract修飾子

abstract修飾子

abstractは、クラスまたはメソッドに指定する修飾子です。
abstractが指定されたクラスやメソッドを、「抽象クラス」「抽象メソッド」と呼びます。

抽象クラスや抽象メソッドは、実装が不完全であることを表し、継承して実装を完全にさせることを強制させる意味合いがあります。

abstractを指定すると以下のようになります。

【abstract修飾子をクラスに指定した場合】
 ・そのクラスはインスタンス化できなくなる。(継承させることが必須となる)
 ・抽象メソッドを1つも含まない抽象クラスも作成可能

【abstract修飾子をメソッドに指定した場合】
 ・そのメソッドはオーバーライド必須となる
 ・abstractを指定したメソッドには処理の内容を記述できない
 ・メソッドにabstractを指定したら、そのクラスにもabstract指定が必要となる

abstractを指定したサンプルソース

★抽象クラス
abstract public class Sample {

    //通常メソッド
    public void hogeA(){
        System.out.println("hogeAです");
    }

    //抽象メソッド(処理内容は記述しません)
    abstract public void hogeB();
}

★抽象クラスを継承したクラス
public class Sample2 extends Sample {

    //抽象メソッドをオーバーライド(実装しないとエラーになります)
    @Override
    public void hogeB(){
        System.out.println("hogeBです");
    }
}

★実行用クラス
public class Test {
    public static void main(String[] args) {

        //Sample s = new Sample();  ←抽象クラスはnewできません。

        Sample2 s = new Sample2();
        s.hogeA();
        s.hogeB();
    }
}

実行結果
C:\>java Test hogeAです hogeBです

このエントリーをはてなブックマークに追加

Java基本カテゴリ

HOMEへ戻る TOPへ戻る