这是一个编译时错误。您不能从两个接口两个实现。
但是,如果您在C1中实现getGreeting方法是正确的:
public class C1 implements I1, I2 // this will compile, bacause we have overridden getGreeting()
{
public static void main(String[] args)
{
System.out.println(new C1().getGreeting());
}
@Override public String getGreeting()
{
return "Good Evening!";
}
}
我只是想补充一点,即使I1中的方法是抽象的,默认的是I2,你也不能实现它们。所以这也是一个编译时错误:
public interface I1
{
String getGreeting();
}
public interface I2
{
default String getGreeting() {
return "Good afternoon!";
}
}
public class C1 implements I1, I2 // won't compile
{
public static void main(String[] args)
{
System.out.println(new C1().getGreeting());
}
}