关于接口的另一个澄清。假设有一个类:
public interface Foo {
public static final String doSmth();
public static String doSmth2();
public final String doSmth3();
public String doSmth4();
public abstract String doSmth5();
}
1)我可以在接口的方法头中编写abstract
吗?
2)我可以省略单词static
,public
和final
吗?
答案 0 :(得分:0)
没有这样的界面。你会得到一个compilererror。 1.)final
方法无法覆盖。但是你必须实现它们,因为它们是界面的一部分。 2.)static
方法无法覆盖。并且由于这在接口中是不允许的(至少没有方法体)。可以省略访问修饰符。但请记住,没有accessmodifier的方法是packagelocal !!!
答案 1 :(得分:0)
abstract
。static
,public
就像在任何其他类中一样,并且您不能在界面中使用final
方法。就这样你知道,你的代码将无法编译。
答案 2 :(得分:0)
接口中的变量是公共静态的,最后是隐含的。 您无法在接口中创建静态方法。 最后的方法不能覆盖,如果接口中的方法是最终的,它不能被任何类覆盖,所以它没有使用final的意义。