🧨

【Java】継承とは(備忘録)

2023/05/01に公開

1.継承とは

・他のクラスのメソッドとフィールド(クラス直下に定義された変数)を扱うことができます。

・継承先クラスを、サブクラスといいます。
 継承元クラスを、スーパークラスといいます。

1つのサブクラスが、複数のスーパークラスを持つことは不可能です。

階層的な継承ができます。

・Javaでは、複雑さを排除する為に、単一継承が採用されています。
 多重継承を採用する際は、「インターフェイス」という仕組みを導入しています。

継承宣言の文法
class 継承先クラス名 extends 継承元クラス名 {
}

2.サンプルプログラム

Sample_Main.java
public class Sample_Main {
    public static void main(String[] args) {
        // インスタンス作成
        Sample_3 place = new Sample_3();    

        // メソッドの呼び出し
        place.work_Country();
        place.work_Area();
        place.work_City();
    }
}

// 最も階層が高いスーパークラス
class Sample_1 {
    // 定数宣言
    final String COUNTRY_1 = "日本";
    final String COUNTRY_2 = "アメリカ";
    final String COUNTRY_3 = "中国";
    final String COUNTRY_4 = "ドイツ";
    
    // work_Countryメソッドを定義
    void work_Country() {
        System.out.println("私が勤務している国は" + this.COUNTRY_1 + "です");
    }
}

// 2番目に階層が高いスーパークラス(Sample_1のサブクラス)
class Sample_2 extends Sample_1 {
    // 定数宣言
    final String AREA_1 = "東京都";
    final String AREA_2 = "大阪府";
    final String AREA_3 = "イリノイ州";
    final String AREA_4 = "広東省";
    final String AREA_5 = "バイエルン州";
    
    // work_Areaメソッドを定義
    void work_Area() {
        System.out.println("私の勤務地は" + this.AREA_1 + "です");    
    }
}

// Sample_2クラスを継承(Sample_2のサブクラス)
class Sample_3 extends Sample_2 {
    // 定数宣言
    final String CITY_1 = "港区";
    final String CITY_2 = "大阪市北区";
    final String CITY_3 = "シカゴ市";
    final String CITY_4 = "深セン市";
    final String CITY_5 = "ミュンヘン市";
    
    // work_Cityメソッドを定義
    void work_City() {
        System.out.println("私が勤務している都市は" + this.CITY_1 + "です");
    }
}
実行結果
私が勤務している国は日本です
私の勤務地は東京都です
私が勤務している都市は港区です

備考:便宜的にすべてのクラスをSample_Main.javaファイルに記載しています。

3.参考

多重継承とは
単一継承とは

4.その他

実行環境

Discussion