●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

クラスの共通ルールを定義する「インターフェース(Interface)」とは?

Javaのオブジェクト指向では、インターフェース(Interface)を使って、
複数のクラスに共通のルールや機能の枠組みを持たせることができます。
「こういう機能を実装してください」と命令書のような役割を持ちます。

インターフェースとは?

インターフェースは、メソッドの定義(名前・引数・戻り値)だけを書き、処理の中身は書かない構造です。
実装は、それを使うクラス側で行います

基本構文

interface インターフェース名 {
    戻り値の型 メソッド名(引数);
}
    

例:インターフェースの定義と実装

interface Animal {
    void speak();  // 中身は書かない(抽象メソッド)
}

class Dog implements Animal {
    public void speak() {
        System.out.println("ワンワン!");
    }
}

class Cat implements Animal {
    public void speak() {
        System.out.println("ニャーニャー!");
    }
}
    

使用例

public class Main {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();

        a1.speak();  // → ワンワン!
        a2.speak();  // → ニャーニャー!
    }
}
    

インターフェースの特徴

  • クラス間で共通の仕様を定義できる
  • 多重実装(複数のインターフェース)が可能
  • 抽象クラスと違って継承関係に縛られない
  • Java8以降は default メソッド(中身つき)も書ける

インターフェースと抽象クラスの違い

項目 インターフェース 抽象クラス
メソッド 基本はすべて抽象(Java8以降は一部実装可能) 抽象メソッド+通常のメソッドもOK
継承関係 他のクラスとは関係なく実装できる 1つのクラスからしか継承できない
使いどころ 共通ルールの定義・仕様書的な役割 基本処理+差分だけ子クラスに任せたいとき

複数のインターフェースを実装

interface Runnable {
    void run();
}

interface Flyable {
    void fly();
}

class Bird implements Runnable, Flyable {
    public void run() {
        System.out.println("トコトコ走る");
    }
    public void fly() {
        System.out.println("パタパタ飛ぶ");
    }
}
    

まとめ

インターフェース(Interface)は、複数のクラスに共通のルールを定める仕組みです。
仕様の統一や柔軟な設計ができるようになるため、Javaプログラミングには欠かせない考え方です。
implementsを使って実装する」この基本を押さえて、ぜひ実際に使ってみましょう!