在面向对象的编程中,接口类似于只声明了方法、除此之外不起任何作用的类。也就是说,接口由“空”方法组成。
接口的一个用途是在两个不相关的类(如果没有接口,这两个类没有任何关系)之间实现一个协议。例如,假设您是一个程序员团队中的一员,团队中的每个程序员分别负责一个大型应用程序中不同的部分(也就是说,不同的类)。在这些类中,大多数都是不相关的,但您仍需要一种机制,使不同的类之间能够相互通信。也就是说,您需要定义一个接口,或者称作通信协议,所有的类都必须遵守这个协议。
一种实现方式是创建一个 Communication 类,定义所有这些方法,然后让每个类都扩展(或继承自)这个超类。但是,由于应用程序由不相关的类组成,因此,将这些类都硬生生地放置到一个公共的类层次结构中是没有意义的。一个更好的解决方法是创建一个接口,声明这些类将用于通信的方法,然后让每个类都实现这些方法(为这些方法提供其自己的定义)。
通常,不使用接口也可以成功编写程序。但是,如果恰当地使用接口,可以使应用程序设计更完美、更具可伸缩性和可维护性。