1.什么是接口
Java中的接口(interface)使抽象类的概念更深入了一层。接口中声明了方法,但不定义方法体,因此接口只是定义了一组对外的公共接口。与类相比,接口只规定了一个类的基本形式,不涉及任何实现细节。
在OOP中,一个类的公共接口可以被认为是使用类的客户代码与提供服务类之间的契约或协议。因此可以认为一个接口的整体就是一个行为的协议。实现一个接口的类将具有接口规定的行为,并且外界可以通过这些接口与它通信。有些OOP采用protocol作为关键词,而Java使用interface作为接口的关键词。
2.接口的定义
接口定义包括接口声明和接口体两部分。格式如下:
(1)接口声明
接口声明的格式如下:
其中public指明任意类均可以使用这个接口。在默认情况下,只与该接口定义在同一个包的类才可以访问这个接口。Extends子句与类声明的extends子句基本相同,不同的是一个接口可以有多个父接口,用逗号隔开。而一个类只能有一个父类。子接口继承父接口中的所有常量和方法。
(2)接口体
接口体中包含常量定义和方法定义两部分。在接口体定义的常量具有public、final、static的属性。常量定义的具体格式为:(www.xing528.com)
其中type可以是任意类型,NAME是常量名,通常用大写字母。value是常量值。在接口中定义的常量可以被实现该接口的多个类共享。
在接口中声明的方法默认具有public和abstract属性。方法定义的格式为:
接口中只进行方法的声明,而不提供方法的实现。所以,方法定义没有方法体,且以分号(;)结尾。此外,如果在子接口中定义了与父接口同名的常量和相同的方法,则父接口中的常量被隐藏,方法被重写。
注意,接口中的成员不能使用某些修饰符,比如transient、volatile、synchoronized、private、protected等。
3.接口的实现和使用
类的声明中用implements子句来表示一个类实现了某个接口。在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分隔。在类中实现接口所定义的方法时,方法的声明必须与接口中所定义的完全一致。
【例4-18】接口的定义及其实现。
运行结果如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。