在Java中,A.super.func(),what';它的含义是什么?(界面默认)

在Java中,A.super.func(),what';它的含义是什么?(界面默认),java,Java,由于A和B都有func()的默认实现,A.super.func()允许您调用A的func()的默认实现(同样B.super.func()也会调用B的默认实现func()).从 如果您的方法重写其超类的一个方法,则可以通过使用关键字super调用被重写的方法 因此,通过调用super.func()可以访问超类的func()方法。但是这里A&B都有同名函数,因此您必须告诉编译器要使用哪个super 因此,通过告诉A.super您正在通知编译器使用接口A的方法。如果您想调用特定接口的默认实现,并且有多

由于
A
B
都有
func()
的默认实现,
A.super.func()
允许您调用
A
func()
的默认实现(同样
B.super.func()
也会调用
B
的默认实现
func()
).

如果您的方法重写其超类的一个方法,则可以通过使用关键字super调用被重写的方法

因此,通过调用
super.func()
可以访问超类的
func()
方法。但是这里
A&B
都有同名函数,因此您必须告诉编译器要使用哪个super


因此,通过告诉
A.super
您正在通知编译器使用接口A的方法。如果您想调用特定接口的默认实现,并且有多个接口实现该方法,那么B

为什么使用接口.super?@ShawnLiu也是如此,这是指定所需实现的唯一方法。@Eran super是必需的,因为不能使用.func(),因为它不是static@YassinHajaj没错。我假设问题更多的是关于接口名称而不是super关键字本身(即为什么
A.super.func()
而不是简单的
super.func()
super
是必需的,因为你不能使用
A.func()
,因为它不是staticsuper,因为你不能使用A.func(),因为它不是staticyah。。这是显而易见的:)是的,但我认为不是这样。因此,他对埃兰的回答发表了评论。
interface A{
     default void func(){
         System.out.println("This function is a default function in interface A!");
     }
}
interface B{
     default void func(){
         System.out.println("This function is a default function in interface B");
     }
}
class C implements A,B{
     public void func(){
         System.out.println("func in class C!");
         A.super.func();//What's meaning?
     }
}