对于以下代码,
interface SuperInterface{
void f();
interface StaticNestedInterface{
}
}
class Sub implements SuperInterface{
public void f(){
}
}
public class Dummy {
public static void main(String[] args) {
Sub x = new Sub();
}
}
编译器不会要求class Sub
实施interface StaticNestedInterface
。
class Sub
是否是有效的java代码?
答案 0 :(得分:1)
是的,它是一个有效的Java代码。
您只需在StaticNestedInterface
中声明SuperInterface
即可。使用嵌套接口的一种方法是
interface SuperInterface {
void f();
StaticNestedInterface sni();
interface StaticNestedInterface {
void a();
}
}
class Sub implements SuperInterface{
public void f(){
}
@Override
public StaticNestedInterface sni() {
return null;
}
}
答案 1 :(得分:0)
是的,它是一个有效的java代码。 Java编译器将创建public static SuperInterface$StaticNestedInterface{}
要使用嵌套接口class Sub implements SuperInterface.StaticNestedInterface
,编译器将要求Sub类实现在StaticNestedInterface
上声明的方法
答案 2 :(得分:-1)
interface StaticNestedInterface{
void a();
void b();
}
interface SuperInterface extends StaticNestedInterface{
void f();
}
class Sub implements SuperInterface{
//now compiler require all methods(a, b and f)
}