java编程,接口的使用~2

来源:互联网 发布:unity3d安卓版 编辑:程序博客网 时间:2024/05/08 18:25
在接口声明后面的大括号括起来的部分,为接口的接口体。接口体由两部分组成:常量声明和方法声明。其语法格式如下所示。
[修饰符] interface 接口名称 [extends 父接口名称列表]{
     // 常量声明 [public] [static] [final] 常量名称;
     // 方法声明 [public] [abstract] 返回类型 方法签名;
}
说明:
? 常量声明:接口中可以包含有常量声明,也可以不包含,它不是必须的,根据需要而定。如果有常量声明的话,默认是public static final类型的,也就是说,接口中的所有字段都隐含地具有public、static和final属性。所以可以省略常量声明的修饰符public、static和final,其作用都是一样的。
? 方法声明:接口中的方法只有返回类型和方法签名,而没有方法体。接口中的方法都具有public和abstract属性,所以在声明方法时,可以省略前面的修饰符public和abstract,作用都是一样的。也就是说,即使声明方法时前面不使用修饰符,该方法也隐含地是public和abstract的。
下面定义的接口包含有对接口中常量的声明和方法的声明。
public interface GroupedInterface extends Interface1,Interface2,Interface3 {
    // 常量声明
    double E = 2.718282; // 自然对数的基数
    //上面的变量声明等价于 public static final double E=2.718282语句
    // 方法声明
    void doSomething (int i, double x);
    int doSomethingElse(String s);
}
在接口的接口体中,含有对接口所包含的所有方法的声明。接口所含有的方法声明后面紧跟一个分号,而不是花括号,因为一个接口不提供对它里面所声明的方法的实现。在一个接口中声明的所有方法都隐含是public的,所以public修饰符可以被省略。在接口中声明的所有常量,默认都是public static final类型的,如上面的常量E。因为常量是不可修改的,所以在接口中声明的常量必须要赋初值,并且在接口的实现类中可以使用这个常量,但不能重新赋值(修改)。例如,下面的类GroupedInterfaceImpl实现的接口GroupedInterface:
public class GroupedInterfaceImpl implements GroupedInterface {
   {
    //E = 3.718282;       //错误。不可以修改常量的值
    System.out.println(E);
   }
   @Override
   public void doSomething (int i, double x) {
   }
   @Override
   int doSomethingElse(String s){
   }
   public static void main(String[] args){
    new GroupedInterfaceImpl();
   }
}
接口的主要作用,是声明共同的常量或方法,用来为不同的类提供不同的实现,但这些类仍然可以保持同样的对外接口。接口可以被类实现,也可以被其他接口继承。在类中实现接口需要使用关键字implements。
0 0