Code Fix

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

default メソッドの衝突と解決

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

 1  interface Greeter {
 2      private String prefix() { return "Hi, "; }
 3      ________ void greet(String name) { System.out.println(prefix() + name); }
            ^
 4  }
 5  public class Main implements Greeter {
 6      public static void main(String[] args) {
 7          new Main().greet("Java");
 8      }
 9  }
Main.java:3: error: interface abstract methods cannot have body

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

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

default メソッドの衝突と解決

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

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

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