[PR] 迷惑メール トップページプロ3ゼミJavaJava入門講座二学期単位10 →1時間目

1時間目 抽象クラスを学ぶ

10−1−1.抽象クラスをマスターしよう

 筆者が考えるJavaプログラミングで重要なのは、この単位で学ぶ抽象クラスとインタフェースだと思っていま す。
その為、この単位がJavaプログラマの大きな実力差となります。
それは、プログラミングだけではなく、クラス設計などの設計部分にも関わってくるからです。
ここでは、Javaの抽象クラスの作り方をマスターしましょう。

 抽象クラスを簡単に説明すると以下のようになります。
 classキーワードの前に、abstract修飾子が付き、実装されていないメソッドが定義されているクラスです。
又、インスタンス化できません。
 abstrcat修飾子が付くと抽象クラスの宣言と言うよりかは、未実装のメソッドが定義できると言った方が正し いかもしれません。
だからと言って未実装が一つもなくてもabstract修飾子で作成されたクラスはインスタンス化できません。

10−1−2.抽象クラスの構文と抽象クラスの構文の指南

 以下が抽象クラスの構文です。
abstract class クラス名 {
    フィールドの宣言;
    実装されているメソッド;
    abstract 戻り値の型 メソッド名(引数);
}
 構文のように、実装されているメソッドも作成できますが、未実装の場合はメソッドにabstract修飾子を加 えて下さい。

 それでは、どのようにして抽象クラスを使うのかと言いますと、抽象クラスをスーパークラスとして継承すれ ばいいのです。
また、抽象クラスを継承して新たな抽象クラスを作成する事も可能です。
ここで、abstract修飾子が付かなければ、抽象メソッド(abstract修飾子が付加し、未実装のメソッド)はコ ンパイルエラーになる為、実装しなければなりません。
こうする事により、そのサブクラスをインスタンス化出来るわけです。
Javaやオブジェクト指向では、インスタンス化できないクラスを抽象クラス、インスタンス化できるクラスを具 象クラスと抽象クラスと区別して呼ぶこともあります。

10−1−3.サンプルプログラム

Sample10_1_1.java
// 抽象クラス
abstract class AbstractClass {

    private int number;

    public void setNumber(int number) {

        this.number = number;
    }

    public int getNumber() {

        return number;
    }

    // 抽象メソッド
    abstract public void view();
}

// 具象クラス
class EmbodimentClass extends AbstractClass {

    public void view() {

        System.out.println("EmbodimentClassのview()");
    }
}

public class Sample10_1_1 {

    public static void main(String[] args) {

        EmbodimentClass obj = new EmbodimentClass();
        
        obj.setNumber(100);

        obj.view();
        System.out.println(obj.getNumber());

    }

}
EmbodimentClassのview()
100


単位9 継承に戻る     2時間目 インタフェースを学ぶに進む

単位10 抽象クラス及びインタフェースに戻る

トップページに戻る