曾经一直坚信“接口中的所有方法都是抽象的,所有成员变量都是public static final的”,但今天在MyEclipse和Eclipse里写了个接口,属性没有用static final 竟然也编译通过,还可执行,这是为什么,是不是被开发环境优化,自动给加上了?求高手指教...谢谢...

解决方案 »

  1.   

    接口中的所有方法默认都是抽象的,所有成员变量默认都是public static final的跟eclipse无关
      

  2.   


    补充:不是IDE加上的,是java编译的时候默认。
      

  3.   

    http://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html官方文档是这样说的
    An interface can contain constant declarations in addition to method declarations. All constant values defined in an interface are implicitly public, static, and final. Once again, these modifiers can be omitted.
    所有的修饰符都可以被省略掉,编译器会自动为你添加上