Java初心者必見!「this」と「super」の違いと使い方をわかりやすく解説

こんにちは。ゆうせいです。
今回はJavaプログラミングにおいてとても重要なキーワード「this」と「super」について、初めてJavaを学ぶ新人エンジニア向けにわかりやすく解説していきます!

「this」と「super」はクラス(class)やオブジェクト指向(Object-Oriented Programming, OOP)の概念に深く関係しており、使いこなせるとコードの見通しがぐんと良くなります。


「this」とは?自分自身のインスタンスを指す

「this」の基本的な役割

「this」は現在のオブジェクト自身を指します。
もっと言うと、「このクラスから生成された今このインスタンス」という意味です。

よくある使い道

1. フィールドと引数の名前が同じとき

public class Person {
    String name;

    public Person(String name) {
        this.name = name;  // フィールドのnameに引数のnameを代入
    }
}

この場合、this.nameクラス内の変数を指し、nameメソッド引数を指します。
名前が同じだと混乱するので、「this」をつけて区別しています。

2. 自分自身を返す(メソッドチェーン)

public class Counter {
    int count = 0;

    public Counter increment() {
        this.count++;
        return this;
    }
}

こうしておくと、counter.increment().increment();のように、メソッドチェーンが可能になります。


「super」とは?親クラス(スーパークラス)を指す

「super」の基本的な役割

「super」は親クラスのメンバやコンストラクタを参照するために使います。

Javaは「クラスの継承」という仕組みがあり、あるクラスが他のクラスの機能を引き継ぐことができます。このとき、引き継いだ元のクラス(親クラス)にアクセスしたいときに「super」を使います。

よくある使い道

1. 親クラスのコンストラクタを呼び出す

class Animal {
    Animal(String name) {
        System.out.println("Animal: " + name);
    }
}

class Dog extends Animal {
    Dog() {
        super("ポチ");  // 親クラスのコンストラクタを呼ぶ
    }
}

親クラスに引数付きコンストラクタがあるときは、子クラスのコンストラクタでsuper(...)を呼び出す必要があります。

2. 親クラスのメソッドや変数を呼び出す

class Animal {
    void speak() {
        System.out.println("動物が鳴く");
    }
}

class Dog extends Animal {
    void speak() {
        super.speak();  // 親クラスのspeak()を呼ぶ
        System.out.println("ワンワン!");
    }
}

このように、親クラスの機能を利用したうえで、自分なりの機能を追加することができます。


図で理解しよう!

クラス構造のイメージ

      Animal(親クラス)
        ↑
     superで参照
        ↑
       Dog(子クラス)

Dogの内部には
this = 自分自身(Dog)
super = Animalの機能

「this」と「super」の違いまとめ

キーワード意味参照先主な用途
this自分自身のインスタンス自分(現在のクラス)フィールドの区別、メソッドチェーン
super親クラスの機能やコンストラクタ親クラス継承された機能の利用

こんなとき、どっちを使う?

  • 「自分のクラスの中で変数やメソッドを操作したい」→ this
  • 「親クラスの処理を使いたい」→ super

今後の学習のヒント

次に学ぶべきは、「継承」や「オーバーライド(Override)」、「ポリモーフィズム(多態性)」といったオブジェクト指向の中核的な概念です!

また、実際に簡単なクラスを作って「this」と「super」を使ってみることで、理解が深まります。
たとえば「人間」クラスと「学生」クラスを作って、コンストラクタやメソッドを継承してみるのが良いトレーニングになりますよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。