什么时候使用接口?什么时候使用抽象?选择Java接口还是抽象类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aduovip/article/details/49965125

1.关于接口的理解。 
  接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。 
  我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定        义与实现分离,尽管这可能对系统中的某些情况有点繁烦。 
  接口的本身反映了系统设计人员对系统的抽象理解。 
  接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class); 
  第二类是对一个体某一方面的抽象,即形成一个抽象面(interface); 
  一个体有可能有多个抽象面。 
  抽象体与抽象面是有区别的。

2.设计接口的另一个不可忽视的因素是接口所处的环境(context,environment),系统论的观点:环境是系统要素所处的空间与外部影响因素的总和。任何接口都是在一定的环境中产生的。因此环境的定义及环境的变化对接口的影响是不容忽视的,脱离原先的环境,所有的接口将失去原有的意义。

3.按照组件的开发模型(3C),它们三者相辅相成,各司一面,浑然一体,缺一不可。

接口与抽象类的区别:

1.   抽象类可以包含各种类型范围的属性值, 接口只能有静态常量的属性值

2.   抽象类可以包含抽象方法和非抽象方法,  接口包含的方法只能是抽象方法

3.   抽象类和接口都不能实例化, 但是抽象类有构造方法, 接口没有构造方法

4.   抽象类只能单继承, 接口可以多个实现

http://blog.csdn.net/Remember_Y/article/details/49022093

猜你喜欢

转载自blog.csdn.net/aduovip/article/details/49965125