对于接口的理解

可能是对于接口的理解   最早是来源于 计算机网络吧:层之间的通信

所以在学习面向对象的过程中 一直难以理解“接口”    到底是哪里接哪里 

 

最近把书详细的看了一遍  

发现接口是一组为实现的方法的集合。 

但是在每次使用时   都要把接口里的方法实现了,我就想到既然接口还需要被实现  那还用接口干嘛  直接重新写方法 不就可以了么        多费一步       然后从网上去查找接口的好处

发现以下的理解  

 

 

————————》

接口用得好坏,取决于水平。但是初步的理解接口还是不难的。首先记住:类是对象的抽象,接口是方法的抽象。类的概念就不说了。单说接口吧。如果方法跨越不同类的对象,可使用接口,即然你语法很熟了,我就不去写代码了。
   举个例子吧,一个外地的朋友突然来看你,你常常会问“你是坐车来的还是坐飞机来的?”
   那么可以定义了三个类:飞机类,船类,车类(当然,你也可以进一步把这三个类抽象为一个类,运输类。但为了说明接口,暂不作进一步抽象)。定义一个接口:客运。
   三种类的对象都可以各自去实现“客运”这一接口,当然它们的实现方式各不相同。
   再举一例,鸟类,飞机类,神仙类都能“飞”。这三种类都以各自的方式去实现“飞”这一接口的。
   当然这两个例子只能浅浅的说明接口,以后你在运用时去深入理解吧。但记住:接口是是方法的抽象。如果方法跨越不同类的对象,可使用接口。

 

从他的叙述中  

他认为  当跨越不同类的要使用大致功能相同的方法时  就可以使用接口,功能相似  但不完全相同 (功能相同  不如写静态函数)

然后发现这个人的理解更好一点

————————》

定义一个接口是为了遵循同一种规范,便于程序的扩展。它里面的成员可以是字段,索引器,属性,函数,事件。
其中函数是虚函数,只有函数定义,不写函数主体。
比如我们定义一个鸟的接口。规定鸟:可以飞翔,可以吃食。但是具体这是什么鸟,吃什么食物我们不用管,有这样一个接口就好,后面再写具体的鸟类时继承这个接口,再去考虑实现具体的函数。
由此可以看出,继承同一个接口可以实现类的多态性,但是他们都遵循同一个接口,有相同的类成员。
以上是我自己理解的,其他的你自己上网查吧,我个人对理论知识记得很烂。。。

 

他认为   接口是实现了一种规范  比如 鸟飞 神仙飞  飞机飞  具体方法不一样 但是都是飞    可以说是一种功能      就把他们叫做接口好了       继承接口 就告诉你      这玩意能飞  但是具体怎么飞     咱也不知道  应该不像是他后来说的多态性 而是说 一种整体架构的角度来看程序

 

 

后来发现   接口不能用字段 但是可以用属性   

原因是

接口关心的是方法的约定,而不是方法的实现。
而具体怎么安排字段,要什么字段,字段在内存的位置,则是内部细节,接口不应该管这么宽。

属性的确就是getter和setter,但独立出来成为单独的类别,使它更自然,使得那些对象愿意对外展示的属性(颜色,大小,年纪等),不用通过粗笨的方法来得到。

比如WinForm下的PropertyGrid,就专门显示对象的属性,而不理睬字段或方法。

 

他的回答  也很好的说明了 接口的目的是规范

 

 

 

posted @ 2012-11-06 16:57  王若伊_恩赐解脱  阅读(225)  评论(0编辑  收藏  举报