Java语言中,除了类和数组之外,还可以定义和使用另外一类引用数据类型——接口(Interface)。

格式:

java中用接口定义变量 java定义接口的形式_java中用接口定义变量

 接口是和类一种相似又有区别的一种结构,接口的设计和调用也是Java程序设计的重要技术。

学习之初,我们可以将接口理解成一种极端的抽象类,

该类中只有常量和抽象方法的定义,而不提供变量和方法的实现。例如:

java中用接口定义变量 java定义接口的形式_Java_02

 

接口的定义   

与类的结构相似,接口也分为接口声明和接口体两部分。定义接口的一般格式如下:

java中用接口定义变量 java定义接口的形式_java中用接口定义变量_03

 接口的访问限定只有public和缺省的。   

 interface是声明接口的关键字,与class类似。  

并且接口名必须与文件名相同。 

 对接口体中声明的方法,系统默认为是“public abstract”的,也不需要指定;

对于一些特殊用途的接口,在处理过程中会遇到某些异常,

可以在声明方法时加上“throw 异常列表”,以便捕捉出现在异常列表中的异常。

 

 接口的实现

所谓接口的实现,即是在实现接口的类中重写接口中给出的所有方法,

书写方法体代码,完成方法所规定的功能。定义实现接口类的一般格式如下:  

java中用接口定义变量 java定义接口的形式_java中用接口定义变量_04

 需要提醒的是,可能实现接口的某些类不需要接口中声明的某个方法,

但也必须实现它。类似这种情况,一般以空方法体(即以“{}”括起没有代码的方法体)实现它。

 接口的多重继承

    和Java类之间的继承关系类似,接口之间也可以进行继承,

也就是说可以定义新的接口继承现有接口,添加新的常量属性和抽象方法定义

,在其父接口的基础上进一步深化或分化其“规划”作用,当然最终还是要靠其实现类实现所有规划的功能。

 

java中用接口定义变量 java定义接口的形式_Java_05

 抽象类和接口的对比

 

java中用接口定义变量 java定义接口的形式_java中用接口定义变量_06

 抽象类和接口的对比

如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。     

如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,

子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。

 如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口, 

那么就需要改变所有实现了该接口的类。