• 类,接口??


    关于类和结口的概念,最近看了一些资料,
    但还是不是很清楚之间的关系。


    四个概念:类(class),类型(type),接口(interface)以及契约(contract)。
    这里我们说到的类型和上面提到的类型有所不同,是狭义的OOP中的类型。

    为了理解这几个概念,我先划分出三个概念域:一个是针对现实世界的,一个是针对特定程序设计范型的(在这里就是OO设计范型),最后一个是针对编译器实现的。也就是说,在现实世界中的概念必须有一种手段映射到OO范型中去,而OO范型中的概念也应该在编译器实现中有相同的概念对应。由此,

    我们可以这样说,类是做为现实世界中的概念,而传统的OOPL都会提供class关键字来表示对现实世界模拟的支持。
           而接口,是作为OO程序设计范型中与类对应的一个概念。在OO设计中,我们所要做的就是针对接口进行设计和编程,而接口的实质含义就是对象之间的一种契约。
          而类型就是编译器实现中针对类和接口所定义的对应概念。

          可以这样说,类是现实世界中存在的客观概念,是唯物的。接口是设计人员定义出来的,存在于设计人员心中的概念,是唯心的。而类型是类和接口这两种概念的编译器实现的映射概念,也是唯物的。类型主要是用来指导编译器的类型检查的谓词,类是创建现实对象的模板,接口是OO设计中的关键概念。这三个概念相互区别(分别位于不同的概念域),又相互联系(都是代表相同的概念的不同概念域的映射)。


    这篇文章的地址http://tech.ccidnet.com/pub/article/c1060_a81597_p1.html

    根据我的理解,一个类是用来抽象现实生活的中的对象。
    接口则是在程序中来描述这个类的(对象)状态、属性、动作(事件)。
    但是,接口也是抽象的,接口是不能被实例化的。
    而接口描述的所有的东西(姑且这么称呼),却是在类里面实现的。

    类也有一个抽象类的概念,
    在抽象类里面,我个人认为跟接口很相似,不需要定义具体的东西,
    我们只需要定义一些抽象的方法等等。
    而具体的完成可以放在子类里面。

    由此看来,接口是否可以等同于抽象类呢?
    (子接口可以有多个基接口,而子抽象类却只能有一个基类)



    我们通常在意的是一个对象的复用。
    什么意思?
    比如:我们定义一个employee类以后,
    我们再定义一个manager类为其子类,
    其好处是,我们无须在去定义manager这个对象所有的方法,属性,动作了。
    我们只需添加其manager特有的一些东西。
    但这个前提是,employee类已经定义了具体的东西,如果employee类是一个abstract类,
    那么,我们继承的还是一个模型,对于我们具体实现来说,没有用啊?

    我觉得,接口除了在建立对象对应的模型有用以外,对于对象的复用(应该是继承更清楚一些)似乎是一点用处都没有。

    因为接口无法实现具体的东西,接口的所有东西的实现仍需要在一个类中间定义。
    那么我们的类继承接口的什么?一个(或多个)接口的所有成员模型??

    如果我舍弃接口,我把所有的成员都在类定义,最终的效果是不是一样的呢?


    总之,我对接口的使用上面存在种种疑问,恳请大侠赐教。。。
    any advice r welcome!

  • 相关阅读:
    iframe+json
    qw
    MySql数据类型和Java数据类型对应一览
    MyEclipse生成get/set注释
    Redis集群_主从配置
    MyBatis输出sql需要log4j.properties配置
    默认没有创建两次定时实例的
    spring+freemarker+redis
    jquery easyui 扩展验证
    vs2010 安装 Ajax Control Toolkit
  • 原文地址:https://www.cnblogs.com/king_astar/p/3166.html
Copyright © 2020-2023  润新知