Java语言 -- 接口

来源:互联网 发布:在广电网络上班怎么样 编辑:程序博客网 时间:2024/04/30 01:18

1、接口的简介

接口可以看作是更“纯粹”的抽象,为类定义了其形式:方法名、参数列表、返回类型,但是没有方法体。接口也可包含数据成员,这些数据成员隐含的都是static和final。

只有接口可以被“多重继承”,接口并不占用内存空间,所以避免了C++中多重继承的诸多烦恼。

 

2、接口的作用

(1)用来建立类与类之间的协议,或者说是模块与模块、子系统与子系统等等之间的协议;

(2)用来实现类似于C++的“多重继承”——一个类可以实现多个接口,使得实现类能够向上转型为不止一个基类型。

(3)可用来方便地定义静态常量。

 

3、选择接口还是抽象类?

如果要创建不带任何方法定义和成员变量的基类,那么应该选择接口;

只有在基类强制需要方法定义和成员变量的时候,才选择抽象类。

 

4、接口的应用

我们常常说“面向接口的编程”,其实就是将接口与具体实现分离,将“做什么”和“怎么做”分离,这样,我们可以在不同的情况中更换具体的实现,而不会影响接口的使用者,从而隔离了变化。

接口常常用在需要交互的两个模块、子系统、系统之间,用以保证内部的变化不会影响外部的调用者。

另外,在某些情况下,也可以使用接口来统一各个待调用的类的类型(这些类都实现同一个接口),从而实现一个统一的处理方式。

对于接口的使用,要注意遵循“接口隔离原则”——不应该强迫客户依赖于它们不用的方法。

这个说法类似于页面上的权限控制:用户无权操作的菜单,应该隐藏起来,不让用户看到。

如果一个类的接口被多种用户调用,且各个用户需要调用的方法集各不重合,那么就需要对这个接口进行分解,使得每个用户只能看到自己需要的那部分接口,从而解除了客户程序与它们不需要的接口之间的耦合,也解除了用户程序之间的耦合。

原创粉丝点击