接口的实现是指具体实现接口的类。接口就是给出一些没有内容的方法,封装到一起,到要使用某个类的时候,再根据具体情况把这些方法写出来。相当于事先定义了程序的框架。实现接口的类必须要实现接口中定义的方法。接口的建立语句:interface 接口名{方法;}。
1. 语法格式
2. 语法定义说明
由关键字表示实现的接口,多个接口之间用逗号隔开。实现接口需要注意以下几点:
(1)修饰符可以使用public 或直接省略(省略时默认采用包权限访问控制符)。
(2)在接口内部可以定义多个常量和抽象方法,定义常量时必须进行初始化赋值,定义默认方法和静态方法时,可以有方法体。
(3)在接口中定义常量时,可以省略“public static final”修饰符,接口会默认为常量添加“public static final”修饰符。与此类似,在接口中定义抽象方法时,也可以省略“public abstract”修饰符,定义default 默认方法和static 静态方法时,可以省略“public”修饰符,这些修饰符系统都会默认进行添加。
(4)接口中可以包含三类方法:抽象方法、默认方法、静态方法。
(5)静态方法可以通过“接口名.方法名”的形式来调用。
(6)抽象方法和默认方法只能通过接口实现类的实例对象来调用。
(7)接口的实现类,必须实现接口中的所有抽象方法。
在上面的语法中,一个接口可以有多个父接口,它们之间用逗号隔开。Java 使用接口的目的是为了克服单继承的限制,因为一个类只能有一个父类,而一个类可以实现多个接口。接口中的变量默认使用“public static final”来修饰,即全局常量;接口中定义的方法默认使用“public abstract”来修饰,即抽象方法。如果接口声明为public,则接口中的变量和方法全部为public。
由于接口中的方法都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法。此时需要定义一个类,并使用implements 关键字实现接口中所有的方法。一个类可以在继承的同时实现多个接口,在implements 子句中用逗号隔开。接口的实现类声明格式如下:
[<修饰符号>] class <类名> [extends <超类名>] [implements <接口1>,<接口2>,…]
【例5.14】下面通过一个案例来学习接口的使用,如文件5-14 所示。
文件5-14 Example14.java
执行结果(www.xing528.com)
【例5.15】下面通过一个案例来学习如何实现接口间的继承关系,如文件5-15 所示。
文件5-15 Example15.java
执行结果
为了加深初学者对接口的认识,接下来对接口的特点进行归纳,具体如下:
(1)接口中的方法都是抽象的,不能实例化对象。
(2)接口中的属性只能是常量。
(3)当一个类实现接口时,如果这个类是抽象类,则实现接口中的部分方法即可,否则需要实现接口中的所有方法。
(4)一个类通过implements 关键字实现接口时,可以实现多个接口,被实现的多个接口之间要用逗号隔开。具体示例如下:
(5)一个接口可以通过extends 关键字继承多个接口,接口之间用逗号隔开。具体示例如下:
(6)一个类在继承另一个类的同时还可以实现接口,此时,extends 关键字必须位于implements 关键字之前。具体示例如下:
【例5.16】下面通过一个综合案例演示接口的综合实现,如文件5-16 所示。
文件5-16 Example16.java
执行结果
3. 定义类的改进
有了接口之后,类的定义就更加完善了,在继承的基础上增加了接口,语法格式演变过程如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。