カテゴリ: JavaSilver試験対策 更新日: 2025/12/23

Javaの継承とクラス構造を徹底解説!初心者でも理解できる基本ルール

040
Javaの継承とクラス構造

先生と生徒の会話形式で理解しよう

生徒

「Javaで継承を使うとコードが簡単になると聞きましたが、どんな仕組みなんですか?」

先生

「継承は、あるクラスの特徴を引き継いで新しいクラスを作る仕組みです。同じコードを何度も書かずに再利用できる便利な機能ですよ!」

1. 継承の基本とは?

1. 継承の基本とは?
1. 継承の基本とは?

継承は、既存のクラスを元に新しいクラスを作る仕組みです。元となるクラスを「親クラス」または「スーパークラス」、そこから作られる新しいクラスを「子クラス」または「サブクラス」と呼びます。Javaでは、extendsキーワードを使って継承を定義します。

次のコードを見てください:


public class Animal {
    String name;

    public void eat() {
        System.out.println(name + " is eating.");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println(name + " is barking.");
    }
}

この例では、DogクラスがAnimalクラスを継承しています。そのため、Dogクラスのインスタンスは、Animalクラスのメソッドやフィールドも利用できます。

2. 親クラスのフィールドとメソッドの引き継ぎ

2. 親クラスのフィールドとメソッドの引き継ぎ
2. 親クラスのフィールドとメソッドの引き継ぎ

子クラスは、親クラスに定義されたフィールドやメソッドをそのまま利用できます。次のコード例を見てみましょう:


public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.name = "Buddy"; // 親クラスのフィールドを利用
        dog.eat(); // 親クラスのメソッドを利用
        dog.bark(); // 子クラスで定義されたメソッドを利用
    }
}

実行結果:


Buddy is eating.
Buddy is barking.

このように、親クラスで定義された機能を子クラスでそのまま利用できます。

3. コンストラクタと継承の関係

3. コンストラクタと継承の関係
3. コンストラクタと継承の関係

継承では、親クラスのコンストラクタを子クラスが自動的に引き継ぐことはありません。親クラスの初期化が必要な場合は、子クラスのコンストラクタ内で明示的に呼び出す必要があります。super()キーワードを使います。


public class Animal {
    String name;

    Animal(String name) {
        this.name = name;
    }

    public void eat() {
        System.out.println(name + " is eating.");
    }
}

public class Dog extends Animal {
    Dog(String name) {
        super(name); // 親クラスのコンストラクタを呼び出す
    }

    public void bark() {
        System.out.println(name + " is barking.");
    }
}

次のように利用します:


public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Max");
        dog.eat();
        dog.bark();
    }
}

実行結果:


Max is eating.
Max is barking.

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 継承時の注意点

4. 継承時の注意点
4. 継承時の注意点

継承を使う際は、以下の点に注意しましょう:

  • 親クラスのフィールドやメソッドを適切に定義:子クラスで使用する親クラスのフィールドやメソッドが必要です。
  • 不要な継承を避ける:本当に共通化が必要な場合にのみ継承を使います。無理な継承は設計を複雑にします。
  • 親クラスのコンストラクタ呼び出し:親クラスの初期化が必要な場合は、必ずsuper()を使用します。

5. まとめ

5. まとめ
5. まとめ

継承はJavaプログラミングにおける強力な機能であり、コードの再利用性やメンテナンス性を向上させます。親クラスからフィールドやメソッドを引き継ぐことで、子クラスで重複するコードを減らし、より効率的な開発が可能になります。また、super()キーワードを使った親クラスのコンストラクタ呼び出しや、親クラスの適切な設計が継承の成功には欠かせません。

Javaの継承を活用する際は、親クラスと子クラスの役割を明確に分け、不要な継承を避けることが重要です。以下に、学んだポイントを簡単にまとめます:

  • 継承はextendsキーワードを使って定義する。
  • 親クラスのフィールドやメソッドは子クラスでそのまま利用可能。
  • 親クラスのコンストラクタは自動的に引き継がれないため、super()を利用して明示的に呼び出す必要がある。
  • 不要な継承を避け、設計を簡潔に保つ。

次のコード例は、親クラスと子クラスの構造をおさらいするのに役立ちます:


public class Vehicle {
    String brand;

    public void startEngine() {
        System.out.println(brand + " engine started.");
    }
}

public class Car extends Vehicle {
    int wheels;

    Car(String brand, int wheels) {
        this.brand = brand;
        this.wheels = wheels;
    }

    public void showDetails() {
        System.out.println("Brand: " + brand + ", Wheels: " + wheels);
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car("Toyota", 4);
        car.startEngine();
        car.showDetails();
    }
}

実行結果:


Toyota engine started.
Brand: Toyota, Wheels: 4
先生と生徒の振り返り会話

生徒

「継承を使うと、親クラスと子クラスの関係をうまく活用できますね。親クラスのコードを使い回せるのが便利です。」

先生

「そうですね。特に親クラスをしっかり設計しておくと、子クラスの実装がとても簡単になります。ただし、不要な継承は避けることも重要です。」

生徒

「確かに!必要以上に親クラスを増やすと、逆にコードが複雑になりそうです。super()の使い方もわかりました!」

先生

「その通りです。継承は強力ですが、使い方を間違えると問題を引き起こすこともあります。これからも実際にコードを書きながら練習していきましょう!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaの継承とは何ですか?どのように使うのですか?

Javaの継承とは、既存のクラス(親クラス)から新しいクラス(子クラス)がフィールドやメソッドを引き継ぐ仕組みのことです。コードの再利用性を高め、開発効率を向上させるために使われます。
JavaSilver試験対策の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク