• 面向对象中的抽象和具体类的理解


    面向对象软件开发的一个基本方法就是抽象,到底什么是抽象呢?
    抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
    例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程,就是一个抽象的过程。
    要抽象,就必须进行比较,没有比较就无法找到共同的部分。
    共同特征是指那些能把一类事物与他类事物区分开来的特征,这些具有区分作用的特征又称本质特征。
    因此抽取事物的共同特征就是抽取事物的本质特征,舍弃不同特征。
    所以抽象的过程也是一个裁剪的过程,不同的、非本质性的特征全部裁剪掉了。
    所谓的共同特征,是相对的,是指从某一个刻面看是共同的。
    比如,对于汽车和大米,从买卖的角度看都是商品,都有价格,这是他们的共同的特征,而从其他方面来比较是,他们则是不同的。
    所以在抽象时,同与不同,决定于从什么角度上来抽象。抽象的角度取决于分析问题的目的。
    在软件开发过程中,识别稳定的需求、识别核心的需求、识别概念性的需求、设计系统的架构、定义系统中构件之间的接口关系等等都是抽象的过程,都是反应系统的本质特征的过程。
    抽象的,才是稳定的,才是永恒的。 抽象的反义词是具体。人员往往会说:“你讲的太抽象了,能不能讲的具体一点?”
    在开发语言中,有抽象类,有具体类,具体类可以继承自抽象类,可以实例化。抽象类可以派生出众多的不同的具体类。
    所谓:“一生二,二生三,三生万物”。系统的稳定体现在抽象类,系统的变化体现在具体类。抽象类的层次要高于具体类。
    系统因抽象而稳定,因抽象而生动。
  • 相关阅读:
    How to make sexy button with CSS
    Android程序的完美退出(兼容所有SDK )
    Android颜色大全
    Android: NDK编程入门笔记
    Notification
    创建数据库
    android 自定义标题栏(在标题栏中增加按钮和文本居中)
    havlenapetrFFMpeg OnVideoSizeChangedListener接口的实现
    Android Dev GuideTasks and Back Stack(下)
    Android线程实现AsyncTask
  • 原文地址:https://www.cnblogs.com/nowornever-L/p/6010667.html
Copyright © 2020-2023  润新知