不知道你有没有做过多层结构的程序?举个简单的例子,假设你做的系统有客户端和中间层,而你的客户端在调用中间层的业务处理方法的时候不是通过接口实现的而是直接通过调用类方法实现的,那么恭喜你,以后你有得累了。
不妨做个假设,假如你的中间层业务处理方法的代码或者方法名要做修改,那么你的客户端程序就必须全部更新。而如果是通过接口实现来实现的话,无论你中间层的代码怎么修改,只要接口不变,客户端程序就不必修改。
---------------------------------------------------------------
接口类似于类,但它的成员都没有执行方式,它只是方法、属性、事件和索引符的组合而已,甚至不能实例化一个接口,接口只包含成员的签名,接口也只能包含这四种成员,它没有构造函数,也没有字段,接口不允许进行运算符重载。
那么为什么要使用接口呢?主要原因是它们是一种有效的契约,类有一些成员,不必考虑把成员组合在一起的问题,类只包含一个拥有各种方法、字段和属性等的列表,但为了能以某种方式使用类,必须知道类能执行哪些功能,具体操作是声明执行一个或多个接口的类,类执行接口的方式是从这个接口派生,再提供在这个接口中定义的所有成员的执行方式。
java中的类是不允许多继承的,而接口可以多继承,算是一点弥补,然后就是使用接口可以封装具体的实现,不向外部暴露具体的实现细节,只将接口暴露出来,用户也只能够通过接口访问,这样也有一定的安全性。
呵呵