Code Fix

上級default メソッドの衝突と解決 › パターン2

default メソッドの衝突と解決

複数のインターフェースから同名を継承すると衝突します。

 1  interface A { default String name() { return "A"; } }
 2  interface B { default String name() { return "B"; } }
 3  public class Main implements A, B {
 4      _______________________________________________
                               ^
 5      public static void main(String[] args) {
 6          System.out.println(new Main().name());
 7      }
 8  }
Main.java:3: error: class Main inherits unrelated defaults for name() from types A and B

空欄を埋めてビルドを通す

広告
広告スロット(未設定)

default メソッドの衝突と解決

A.super.name() による明示的な選択を扱います。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)