3.2.1 接口的定义

在Java语言中,用关键字interface来定义接口。接口与类有相似的结构,其定义格式如下:

      [修饰符]interface接口名 [extends父接口名]{  //接口头
          // 接口体
      }

从接口定义的格式可以看到,接口定义包括两个方面的内容:定义接口头和接口体。接口头的定义和定义类头类似,只是将class变为interface,说明声明的是一个接口。接口可以继承于其他接口。接口体是常量和抽象方法的集合,没有构造方法和静态初始化代码。接口体中定义的属性只能为常量(final)、静态(static)的和公共(public)的。接口体中定义的方法均为抽象的和公共的。由于接口所有成员均必须具有这些特性,所以和普通类不一样的是它的方法默认即为抽象的和公共的,属性默认就是常量、静态的和公共的,而不再用修饰符进行声明了。

【思考】普通类的属性和方法默认情况怎样?

例3-3】 定义一个ObjectArea接口,它的成员有圆周率和求面积方法。

            interface ObjectArea{
                double PI=3.14; //默认即为final、static、public的
                double area(double r); //默认即为public、abstract的
            }