更彻底的抽象:接口

接口里不能包含普通方法,接口里的所有方法都是抽象方法。

接口是从多个相似类中抽象出来的规范,接口不提供任何实现。接口体现的是规范和实现分离的设计哲学。

接口定义:
[修饰符] interface 接口名 extends 父接口1,父接口2...
{
   零个到多个常量定义...
   零个到多个抽象方法定义...
}

  • 修饰符可以是public或者省略,如果省略了public访问控制符,则默认采用包权限访问控制符,即只有在相同包结构下才可以访问该接口。
  • 接口名应与类名采用相同的命名规则,即如果仅从语法角度来看,接口名只要合法的标识符即可;
  • 一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类

由于接口定义的是一种规范,因此接口里不能包含构造器和初始化块定义。接口里可以包含Field(只能是常量),方法(只能是抽象实例方法)、内部类(包含内部接口、枚举)定义。

接口里的Field只能是常量,接口里的方法只能是抽象方法。

只能是public的访问修饰权限。

系统自动为接口里定义的Field增加public static final修饰符。
int MAX_SIZE = 50; 等价如下定义
public static final int MAX_SIZE = 50;

对于接口里定义的方法而言,他们只能抽象方法,因此系统会自动为其增加abstract修饰符;由于接口里的方法全部是抽象方法,因此接口里不允许定义静态方法,即不可以使用static修饰接口里定义的方法。

不管定义接口里方法时是否使用了public abstract 修饰符,接口里的方法总是使用public abstract来修饰。

接口里定义的内部类,接口,枚举类默认都采用public static 两个修饰符,不管定义时是否指定这两个修饰符,系统都会自动使用public static对他们进行修饰。

posted @ 2013-10-21 00:04  haiwei.sun  阅读(125)  评论(0编辑  收藏  举报
返回顶部