Java - インターフェース

インターフェース

インターフェースは、ある機能を実現するクラスが必ず実装するべきメソッドの名前や型のみを定義するものです。インターフェースは interface を用いて定義します。インターフェースで定義されるメソッド(抽象メソッド)の実体は implements を用いた側のクラスで実装しなくてはなりません。

interface インターフェース名 {
  ...
}
インターフェース

インターフェースを実装するには implements を用いて以下のように定義します。インターフェース名は、カンマで区切って複数指定することができます。implements を用いた場合、インターフェース名で指定された抽象メソッドを実装することが義務付けられます。また、インターフェース内で定義されるメソッドには、暗黙的に abstract 宣言と public 宣言がつけられます。

class クラス名 implements インターフェース名 {
  ...
}
インターフェース

インターフェースの修飾子には public、abstract、strictfp を指定できます。

修飾子 interface インターフェース名 {
  ...
}
インターフェース

インターフェースをクラス内に定義する場合には protected、private、static も指定できます。

class クラス名 {
  修飾子 interface インターフェース名 {
    ...
  }
}
インターフェース

親インターフェースの定義を継承するには extends を使用します。

interface インターフェース名 extends 親インターフェース名 {
  ...
}
インターフェース

インターフェースの具体例は以下のとおりです。InterfaceA にはメソッド methodA() と methodB() の名前や型のみを定義しています。クラス ClassA は InterfaceA を実装すると宣言しているため、methodA() や methodB() を実装しなくてはなりません。この実装が正確に行われているかチェックするのが、インターフェースの役目です。

interface InterfaceA {
    public abstract void methodA(String str);
    public abstract void methodB(int num);
}

class InterfaceTest implements InterfaceA {
    public static void main(String[] args) {
    
        InterfaceTest o = new InterfaceTest();
        o.methodA("ABC");
        o.methodB(123);
        
    }
    
    public void methodA(String str) {
        System.out.println(str);
    }
    
    public void methodB(int num) {
        System.out.println(num);
    }
    
}
インターフェース

関連記事