我们可以在不使用关键字“实现”的情况下使用接口的变量和方法吗?
注意:接口和类在同一个包中。
提前致谢..!!!
public static final
默认的,可以直接使用您可以通过匿名类实现接口(不使用implements
关键字)
public static void main(String[] args) throws Exception{
System.out.println(I.s); // accessing Interface I's variable
I i = new I() {
@Override
public int getS() {
return 10;
}
};
System.out.println(i.getS()); // accessing I's method
}
interface I {
String s = "test";
int getS();
}
您可以public static final
将接口的变量用作类中的常量定义,而无需实现接口。
如果不在子类中实现这些方法,使用方法将毫无用处,因为接口只声明public
隐式抽象的方法。您将如何处理没有任何实现的方法定义?
接口实际上是契约定义,任何实现接口的类都遵守契约。
您可以通过创建匿名类来实现没有关键字的接口。但是再次通过该类实现接口。implements
PS:请尝试这样做以确保接口可以使用 abstract 关键字声明方法,尽管它是多余的。
interface A {
public abstract void method();
}
接口是类要履行的契约。如果没有类实现它,那么您可能误用了接口。
正如所指出的,您可以访问静态成员变量,但我仍然质疑这种设计的必要性!