Javaのインターフェースとは?クラスに共通の使い方を決める仕組み

本記事は、Schooの「Java入門 初級【2026年版】」第7回「継承とインターフェース」を学ぶ前後に、Javaのインターフェースの考え方を整理したい方向けのステップアップ学習記事です。
ただし、Schooを受講していない方でも、クラス、メソッド、継承、オーバーライドの基本を学んだあとに読み進められる内容にしています。
Schoo コースページ:Java入門 初級【2026年版】
インターフェースは、クラスに共通の使い方を決める仕組みです。たとえば「このクラスは show() で表示できる」という約束を決めておくと、違うクラスでも同じ呼び方で扱いやすくなります。
インターフェースは共通の使い方を決める仕組み
インターフェースは interface を使って定義します。次の例では、Display インターフェースで show() というメソッドを持つことを決めています。
public interface Display {
void show();
}
ここでは、show() の中身は書いていません。インターフェースでは「どのようなメソッドを持つか」という使い方の約束を決めています。
実装する
show() を作ります。
show() を作ります。
implementsでインターフェースを実装する
クラスがインターフェースを使うときは implements を書きます。implements Display と書いたクラスは、Display で決めた show() を実装します。
public class TextDisplay implements Display {
private String text;
public TextDisplay(String text) {
this.text = text;
}
@Override
public void show() {
System.out.println(text);
}
}
TextDisplay は Display を実装しているため、show() を持つ必要があります。この例では、文字列を表示する処理を show() に書いています。
public class NumberDisplay implements Display {
private int number;
public NumberDisplay(int number) {
this.number = number;
}
@Override
public void show() {
System.out.println(number);
}
}
NumberDisplay も Display を実装しています。表示する中身は数値ですが、呼び出し方は同じ show() です。
Display の約束どおり show() を持っています。
implements は、インターフェースで決めたメソッドをクラスで実装する書き方です。違うクラスでも同じ呼び方ができる
インターフェースを使うと、違うクラスでも共通の型として扱えます。
Display d1 = new TextDisplay("こんにちは");
Display d2 = new NumberDisplay(100);
d1.show();
d2.show();
d1 の実体は TextDisplay なので、文字列を表示する show() が動きます。d2 の実体は NumberDisplay なので、数値を表示する show() が動きます。
TextDisplay の show() が動き、文字列を表示します。NumberDisplay の show() が動き、数値を表示します。インターフェースは「中身」ではなく「呼び方」をそろえる
インターフェースを理解するときは、「処理の中身をそろえる」のではなく、「呼び方をそろえる」と考えるとわかりやすくなります。
TextDisplay は文字列を表示し、NumberDisplay は数値を表示します。中身は違いますが、どちらも show() で呼び出せる点が共通しています。
抽象クラスとの違いは何か
抽象クラスも、子クラスに処理を作らせる仕組みとして使えます。ただし、抽象クラスは共通のフィールドや共通処理を持つ親クラスとして使うことが多く、インターフェースは「このメソッドを持つ」という共通の使い方を決めるときに使います。
最初は、抽象クラスは「共通処理を持つ親クラス」、インターフェースは「共通の呼び方を決める約束」と分けて考えると整理しやすくなります。
確認問題
interface Displayでは、何というメソッドを持つことを決めていますか。TextDisplay implements Displayと書いた場合、TextDisplayは何を実装する必要がありますか。TextDisplayとNumberDisplayは中身が違いますが、どのような呼び方を共通にできますか。
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
あわせて読みたい関連記事
- Javaの継承とは?親クラスの機能を子クラスで引き継ぐ考え方
- Javaの抽象クラスとは?共通処理と必ず作る処理を親クラスで決める考え方
- Javaのオーバーライドとは?親クラスのメソッドを子クラスで上書きする考え方
まとめ
Javaのインターフェースは、クラスに共通の使い方を決める仕組みです。interface でメソッドの約束を決め、クラス側では implements を使って実装します。違うクラスでも同じインターフェースを実装していれば、共通のメソッド名で呼び出せます。