界面说明

时间:2015-04-16 15:10:20

标签: java

关于接口的另一个澄清。假设有一个类:

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)我可以省略单词staticpublicfinal吗?

3 个答案:

答案 0 :(得分:0)

没有这样的界面。你会得到一个compilererror。 1.)final方法无法覆盖。但是你必须实现它们,因为它们是界面的一部分。 2.)static方法无法覆盖。并且由于这在接口中是不允许的(至少没有方法体)。可以省略访问修饰符。但请记住,没有accessmodifier的方法是packagelocal !!!

答案 1 :(得分:0)

  1. 默认情况下,接口中的方法为abstract
  2. 您永远不能省略staticpublic就像在任何其他类中一样,并且您不能在界面中使用final方法。
  3. 就这样你知道,你的代码将无法编译。

答案 2 :(得分:0)

接口中的变量是公共静态的,最后是隐含的。 您无法在接口中创建静态方法。 最后的方法不能覆盖,如果接口中的方法是最终的,它不能被任何类覆盖,所以它没有使用final的意义。