面向对象之抽象

李先生 2020年07月28日 92次浏览

面向对象之抽象

什么是抽象

  • 抽象是面向对象软件开发的一个基本方法
  • 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征
    例如:
    • 苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程(水果都拥有名称、产地、成熟时间等共同特征),就是一个抽象的过程。
    • 三角形、圆形、正方形等,他们的共同特征就是他们都是图形。得到图形的概念的过程(图形都拥有面积),也是一个抽象的过程
  • 抽象必须要有比较
    • 抽象是需要有比较的,单个的物体不存在抽象一说。只有通过比较,才能得出那两个或者那一些物体都拥有某个属性,然后那些属性又是有区别的。
    • 要抽象,就必须进行比较,没有比较就无法找到共同的部分。
  • 抽象的过程是一个裁剪的过程
    • 当要抽象某些东西时,需要在他们众多属性之中,不断的进行裁剪,剪去他们之间不共有的属性,最后只留下他们共有的属性,也成为共同特征,这样的一个过程称之为抽象。
      共同特征是指那些能把一类事物与他类事物区分开来的特征,这些具有区分作用的特征又称本质特征。
    • 因此抽取事物的共同特征就是抽取事物的本质特征,舍弃不同特征。
  • 抽象的共同特征,是相对的
    • 所谓的共同特征,是相对的,是指从某一个刻面看是共同的。
    • 比如,对于汽车和大米,从买卖的角度看都是商品,都有价格,这是他们的共同的特征,而从其他方面来比较是,他们则是不同的。
    • 所以在抽象时,同与不同,决定于从什么角度上来抽象。抽象的角度取决于分析问题的目的。
  • 系统因抽象而稳定,因抽象而具体
    • 在软件开发过程中,识别稳定的需求、识别核心的需求、识别概念性的需求、设计系统的架构、定义系统中构件之间的接口关系等等都是抽象的过程,都是反应系统的本质特征的过程。

    • 抽象的,才是稳定的,才是永恒的。 抽象的反义词是具体。人员往往会说:“你讲的太抽象了,能不能讲的具体一点?”

    • 在开发语言中,有抽象类,有具体类,具体类可以继承自抽象类,可以实例化。抽象类可以派生出众多的不同的具体类。

    • 所谓:“一生二,二生三,三生万物”。系统的稳定体现在抽象类,系统的变化体现在具体类。抽象类的层次要高于具体类。

    • 系统因抽象而稳定,因抽象而生动。