• 放入接口中的任何域(成员变量)都自动是 static 和 final 的;

1. 包含抽象方法的常规接口

2. 全部是常量的

接口类中的方法和属性不要添加任何修饰符号(public 也不需要)。

  • 因为放入接口中的任何域(成员变量)都自动是 static 和 final 的;所以接口就成为了一种很便捷的用来创建常量组的工具;

    public interface Months {
        int 
            JANUARY = 1, FEBURARY = 2, ..., 
            DECEMBER = 12;
    }

    在 Java SE5 之前,这是产生与 C/C++ 的 enum(枚举类型)具有相同效果的类型的唯一途径。有了 Java SE5,就可以使用更加强大而灵活的 enum 关键字,因此,使用接口来群组常量已经没有太多意义了。

3. 空接口(null interface)

空接口也称为标示接口(marker interface),其功能如下:

  • 做标志(marker)用。
  • 可在逻辑上让几个类都成为这个接口的子类;

    // null interface
    public interface EnvironmentObject{}
    
    // 
    public interface Agent extends EnvironmentObject {
        ....
    }

常见的空接口有:

  • java.lang.Cloneable;
  • java.lang.Serializable;
  • java.rmi.Remote;