在java中,a.super.func()是什么意思?(接口默认)

7lrncoxx  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(269)
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?
     }
}
ni65a41a

ni65a41a1#

因为两者 A 以及 B 具有的默认实现 func() , A.super.func() 允许您调用 A 的默认实现 func() (同样地 B.super.func() 将调用 B 的默认实现 func() ).

ymzxtsji

ymzxtsji2#

从文件中
如果您的方法重写其超类的方法之一,则可以通过使用关键字super来调用重写的方法
因此通过呼叫 super.func() 您可以访问 func() 超类的方法。但这里两者都有 A & B 具有同名函数,因此必须告诉编译器要使用哪个super。
所以说 A.super 您正在通知编译器使用接口a的方法。b也是一样

相关问题