接口与类

为什么要引入接口?

先来看类的概念:

什么是类?类可以这么理解.类就是功能的集合.类也可以看做是实现一种功能的集合或者方法;
什么是接口?接口可以理解为,对类的规定,对类的约束,甚至对整个项目的约束。


接口的使用比较多的情况是在多人协作开发的项目中.因为每人都会分配不同的任务。

例如,在一个银行系统中,总行下面会有分行,分行下面又会有支行..面对这样的结构,项目肯定是需要多人合作进行的。多人合作则会产生一个问题,如:A负责浙江分行,B负责海南分行,C负责河南分行。因为每个地区的银行都会根据当地不同的情况会有不同的需求,但是他们又有一些相似或者一样的需求,如果ABC每个人都直接针对各自的分行进行代码的编写,则肯定会有大量重复的代码出现.而且最要命的问题是,每个人对方法,对变量的命名和编程的风格都会不同,如果项目这个时候突然改变了需求,因此让A负责B的工作,B负责C的工作,C负责A的工作,可以想象ABC三个人的工作开展是怎么样的困难。

这个时候如果使用了接口,类似这样的问题就可以在最大程度上缓解。对于相似或者一样的功能,项目经理定义了接口,有了接口,就有了对这些功能制定规则和约束,而类继承了接口后,因此ABC三人就有了一个共同的接口,也可以说是有了一个共同的目标---相同的的方法,属性,事件,他们有了外在的约定,唯一要做好的就是对接口的实现工作,而不必再考虑我要怎么做这个类呢?我能不能这么做呢,因为最上层的接口告诉他们,按照我说的做就好了,接口在这个时候就是准则。


什么时候使用接口?

这个时候或许有人就会说,既然接口这么好,那为什么不给每个类都制定一个接口?接口在大部分时候扮演的是一个对行业规则,而不是对类的规则,如果多个类都是处于同一行业的那就没必要为每个类定义一个接口。


接口与类区别

1、接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以有别的成员(如字段)。
2、不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。
3、接口没有构造函数,类有构造函数
4、接口不能进行运算符的重载,类可以进行运算符重载
5、接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以有修饰符(如:虚拟或者静态)。
6、派生于接口的类必须实现接口中所有成员的执行方式,而从类派生则不然。

你可能感兴趣的:(接口与类)