0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【学習】Spring インターフェイスとインプリメントについての理解

Last updated at Posted at 2025-09-14

interfaceimplementについて混乱したので、具体的な例をあげて違いを把握したかったがための記事

まず二つの違いをざっくり

◆ interface(インターフェイス)とは?
→ 「こういう機能があるよ」と決めたルール(契約書)

◆ implements(実装する)とは?
→ そのルール通りに、ちゃんと中身(行動)を書くこと

具体例

インターフェイス = リモコンのボタン
public interface Switchable {
    void turnOn();
    void turnOff();
}
  • この家電は「ONとOFFができることが約束されている」という定義だけ
  • まだ中身(どうやってONにするか)は書いていない
実装1 = 各家電がリモコンのボタンに応じて動く仕組み
public class Heater implements Switchable {
    public void turnOn() {
        System.out.println("ヒーターの電源を入れました");
    }

    public void turnOff() {
        System.out.println("ヒーターの電源を切りました");
    }
}
  • ここでimplements Switchableと書いているのが「インターフェイスを実装する」ということ
  • → つまり「リモコンでON/OFFできる」という約束を守って、それぞれの家電で「具体的に何をするか」を書いているということ
実装2=モニターでも同じ仕組みが使える
public class Monitor implements Switchable {
    @Override
    public void turnOn() {
        System.out.println("モニターの電源を入れました");
    }

    @Override
    public void turnOff() {
        System.out.println("モニターの電源を切りました");
    }
}
テスト用のコード例(使ってみる)
public class Main {
    public static void main(String[] args) {
        Switchable heater = new Heater();
        Switchable monitor = new Monitor();

        heater.turnOn();   // → ヒーターの電源を入れました
        heater.turnOff();  // → ヒーターの電源を切りました

        monitor.turnOn();  // → モニターの電源を入れました
        monitor.turnOff(); // → モニターの電源を切りました
    }
}

なぜインターフェイスが便利なのか??

  • 共通のルールを決めておけば、いろんなクラス(家電)が同じ操作で使える

さいごに

書籍や各種記事をみていた中で、自分が一番しっくりくる内容でまとめてみました。つたない記事ですが、何か参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?