假设我有两个课程A
和B
:
class A
{
void method()
{
System.out.println("a.method");
}
}
class B extends A
{
@Override
void method()
{
System.out.println("b.method");
}
}
将B
实例化为b
后,我可以调用B
的{{1}}方法。我还可以使用b.method()
制作B
方法调用A
的方法。但是,如果super.method()
是一个接口,该怎么办?
A
interface A
{
default void method()
{
System.out.println("a.method");
}
}
有什么方法可以让class B implements A
{
@Override
void method()
{
System.out.println("b.method");
}
}
方法调用B
的方法?
答案 0 :(得分:2)
是的,你可以。使用
A.super.method();
JLS州
如果表单为
TypeName . super . [TypeArguments] Identifier
,则:如果
TypeName
既不表示类也不表示接口,则为编译时错误。如果
TypeName
表示一个类C,则要搜索的类是C的超类。如果C不是词法封闭类型,则是编译时错误 声明当前类,或者如果C是类Object。
让
T
成为立即封闭方法的类型声明 调用。如果T
是类Object,那么这是一个编译时错误。否则,
TypeName
表示要搜索的界面I
。