Java8からdefaultメソッドがインターフェースに定義できるようになっていた

Java8からdefaultメソッドがインターフェースに定義できるようになっていた

Java8からdefaultメソッドが用意されているようで、インターフェースに実装が出来るようになっています。

こんなインターフェースが作成できます。

package interfaces;

public interface Itest {
  void dash();
  default void bDash() {
    dash();
    dash();
  }
}

このインターフェースをimplementsしたクラスが以下です。

package interfaces;

public class Mario implements Itest{
  @Override
  public void dash() {
    System.out.println("ダッシュします");
  }
}

mainクラスは以下にします。

package interfaces;

public class Main {
  public static void main(String[] args) {
    Mario mario = new Mario();
    mario.bDash();
  }
}

結果は以下になります。

ダッシュします
ダッシュします

インターフェースが実装を持てることにより抽象クラスとの違いがいまいちないような気がしますがJPAのリポジトリインターフェースでは使い勝手が良いかなと思いました。

コメント

タイトルとURLをコピーしました