抽象有很多种,有数据的抽象和过程的抽象。数据的抽象就是从问题领域中提取出一些能反映问题本质的对象;这是面向对象OO的基本功。

OO中,在定义类的层次关系时,有几个重要的概念;如果能从抽象的角度来理解他们,有助于设计出更好的架构,能使解决方案更好的模拟/描述问题空间。

Public Inherit:                          Is-A ( Define real world object )
 
               Compose:                                 Has-A

Private Inherit:                        Use-A

Interface:                                 Can-Do ( Define behaviors/capability model/set; used as a contract )

Interface Explicite Implementation:
                                                   multiple interfaces have the same signatures.

Inherited non-virtual functions:

inherit both the interface(contract/responsibility) and implementation

Inherited virutal functions:

inherit the  interface(contract/responsibility) With implementation ON demand

Inherited pure virutal functions:

inherit the  interface(contract/responsibility) ONLY

面向对象OO的重要概念相关推荐

  1. python的核心理念是什么_Python 面向对象编程的核心概念知识点简介

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于 无量测试之道 ,作者: 无量测试之道 刚接触Python的新手.小白,可以复制下面 ...

  2. python中对象的概念是什么_python面向对象编程的基本概念

    作者|HIMANSHI SINGH 编译|VK 来源|Analytics Vidhya 介绍 在学习面向对象编程时,我决定深入研究它的历史,结果发现它很迷人.术语"面向对象编程"( ...

  3. java中oops是什么意思_Java中的面向对象(OOPs)概念 - 四个主要概念

    在这篇文章中,我们将讨论 java (面向对象程序设计系统)中的基本 OOPs 概念. Oops 是一个基于对象的编程范型. 它涉及数据绑定.多态性和继承等其他概念. 第一种面向对象程序设计是 Sim ...

  4. 面向对象【思想、概念、构造方法、构造代码块】

    面向对象[思想.概念.构造方法.构造代码块] 1.面向对象思想 1.1.概述 面向对象是相对于面向过程而言的,面向过程强调的是其功能,而面向对象则强调的是将功能封装成对象. 1.2.思想 (1)符合人 ...

  5. Java中的面向对象(OOPs)概念 - 四个主要概念

    在这篇文章中,我们将讨论 java (面向对象程序设计系统)中的基本 OOPs 概念. Oops 是一个基于对象的编程范型. 它涉及数据绑定.多态性和继承等其他概念. 第一种面向对象程序设计是 Sim ...

  6. Java面向对象:对象的概念及面向对象的三个基本特征

    面向对象简称OO(Object Oriented),20世纪80年代以后,有了面向对象分析(OOA).面向对象设计(OOD).面向对象程序设计(OOP)等新的系统开发方式模型的研究. 对Java语言来 ...

  7. 面向对象(类的概念,属性,方法,属性的声明,面向对象编程思维

    1 面向对象 1.1 你是如何认识新事物的? 从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类. 1.2 类(Class)的概念(A) 类是对一组具有相同特征和行为的对象的抽象描述 ...

  8. 转发萌新人鱼博客-Java面向对象-面向对象编程之基本概念

    面向对象这个概念,每本书上的说法定义很多. 我自己根据我的经验,自己归档总结了下, 所谓面向对象,就是 以基于对象的思维去分析和解决问题,万物皆对象: 面向对象经常和面向过程放一起讨论: 这里举例, ...

  9. (软件工程复习核心重点)第十章面向对象设计-第一节:面向对象设计的基本概念与准则

    文章目录 一:面向对象设计概念 (1)定义 (2)设计与分析的关系 (3)分类 二:面向对象的设计准则 (1)模块化 (2)抽象 (3)信息隐藏 (4)低耦合 A:交互耦合 B:继承耦合 (5)高内聚 ...

最新文章

  1. 偏最小二乘法回归(Partial Least Squares Regression)
  2. gedit搭建c开发环境
  3. openglshader实现虚拟场景_opengl+shader
  4. pat 乙级 1041 考试座位号(C++)
  5. redis报错:jedis connection exception unexpected end of stream
  6. mac mysql5.7.10 密码_MAC下Mysql5.7.10版本修改root密码的方法
  7. ko.js循环绑定值问题(工作遇见)
  8. 《工业元宇宙白皮书 2022年 》(附免费pdf下载地址)
  9. java 程序员职业规划,详细说明
  10. 图像相似的算法有哪些,图像相似的算法是什么
  11. 神经网络学说的主要观点,神经网络宏观解释包括
  12. 微信小程序使用video组件时的一些坑
  13. mysql实验总结_数据库实验的心得体会.docx
  14. 数据库:CHAR,VARCHAR,TEXT,ENUM ,SET,BINARY,VARBINARY 列的完整性约束
  15. Flash闪存颗粒和工艺知识深度解析
  16. 在ModelSim中添加Xilinx仿真库
  17. MVC5怎么设置默认访问页
  18. js通过键盘操控盒子
  19. 图解数据结构:二叉树
  20. 韩国有什么好吃的 十大特色美食小吃推荐

热门文章

  1. CAD安装与经典模式设置
  2. 使用Golang语言的分金币作业 你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,Adriano,Aaro
  3. 流水线加法器的实现(verilog)
  4. (二)QCustomPlot生成热力图/矩阵颜色图
  5. linux爱数备份客户端安装:要备份oracle数据库
  6. 2020年游戏建模师发展前景怎么样?值不值得入坑
  7. error C2440: “=”: 无法从“const _Elem *”转换为“char *”
  8. 带你了解下车牌识别技术——(1)
  9. 实践与共享:可一键自动搜寻添加有效ID并可成功激活 ESET Nod32 的小工具(绝对好用)...
  10. java 解析xml的方式