接口(interface)比抽象类还要抽象,不提供任何具体实现,是抽象方法的集合。接口表示的是一种能力,定义了一种规范,声明了可以向外部提供的服务。在面向接口开发中,各个接口就是不同模块之间通信的桥梁,接口声明和实现体现了系统设计与具体实现相分离。
1.接口声明(JDK 1.7)
Java接口使用关键字interface声明,且接口体里只包含常量和抽象方法。Java接口中声明的常量,可以由实现这个接口的类使用。接口的语法格式如下:
关于接口声明,有如下几点注意事项:
(1)访问修饰符只能是public或者默认值。
(2)接口中的变量只能是public static final修饰的全局常量,可以省略书写public static final,考虑到可读性,建议不要省略。
(3)接口中的抽象方法只能是public abstract修饰的,可以省略书写,考虑到可读性,建议不要省略。
(4)接口支持多继承,因为接口中的方法都为抽象的,都没有方法体,即使不同父接口里有相同的方法声明,也不会导致不确定性。
【例4-10】
举例声明一个接口。
在项目chapter4下新建cn.linaw.chapter4.demo03包,在包下定义一个接口ItsGraph,如图4-28所示。
图4-28 接口ItsGraph的声明
2.接口实现(JDK 1.7)(www.xing528.com)
一个类使用implements关键字来修饰要实现的接口,接口实现格式如下:
关于接口实现,有如下几点注意事项:
(1)接口中的方法只能由实现接口的类来实现。一个类使用了某个接口,必须重写实现该接口中的所有方法,如果该类没有实现接口中的所有抽象方法,则该类就是一个抽象类。
(2)一个类只能继承一个类,但可以实现一个或多个接口,实现多个接口,多个接口之间采用逗号隔开。
【例4-11】
定义两个实现类,分别实现例4-10中声明的接口。
首先定义一个实现了ItsGraph接口的ItsCircle1类,如图4-29所示。
图4-29 ItsCircle1类实现了ItsGraph接口
再定义一个实现了ItsGraph接口的Its Triangle1类,如图4-30所示。
图4-30 ItsTriangle1类实现了ItsGraph接口
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。