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

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

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

    最近把书详细的看了一遍  

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

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

    发现以下的理解  

    ————————》

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

    从他的叙述中  

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

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

    ————————》

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

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

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

    原因是

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

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

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

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

  • 相关阅读:
    webpack基本使用
    vue-路由-显示名称
    vue-父组件和路由
    vue-路由
    vue-父子组件和ref
    vue-组件
    go-面向对象编程(上)
    JavaScript的历史
    vue-列表动画
    钩子函数实现小球弹落
  • 原文地址:https://www.cnblogs.com/jilodream/p/4222774.html
Copyright © 2011-2022 走看看