zoukankan      html  css  js  c++  java
  • 对于接口的理解

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

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

    最近把书详细的看了一遍  

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

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

    发现以下的理解  

    ————————》

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

    从他的叙述中  

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

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

    ————————》

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

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

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

    原因是

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

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

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

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

  • 相关阅读:
    HDU 1102 Constructing Roads
    HDU 1285 确定比赛名次。
    最小生成树 HDU 各种畅通工程的题,prim和kru的模板题
    HDU Jungle Roads 1301 最小生成树、
    并查集小结(转)
    HDU hdu 2094 产生冠军 拓扑排序 判定环
    模运算(转)
    拓扑排序(主要是确定环和加法) HDU 2647 Reward
    HDU 1372 Knight Moves 简单BFS
    用计算机模型浅析人与人之间沟通方式 (一)如何谈话
  • 原文地址:https://www.cnblogs.com/jilodream/p/4222774.html
Copyright © 2011-2022 走看看