C++面向对象的三大特性
面向对象:先抽象问题整体,在具体逻辑细节。
面向过程:先具体逻辑细节,再抽象问题整体。
面向对象的三大特性:封装、继承、多态
类的封装 --> 一个类如何描述?
类的继承 --> 多个类型之间存在继承关系,如何继承?
类的多态 --> 类的对象有多种形态?
C++认为万事万物皆为对象,对象上有其属性与行为。
例如:
人可以作为对象,属性有姓名、年龄、身高、体重... 行为有走、跑、跳、唱歌、跳舞..
车可以作为对象,属性有轮胎,方向盘,车灯... 行为载人、播音乐、放空调...
具有相同性质的对象,我们可以抽象成为类,人属性人类,车属性车类。
类 ----> 对象
人类 张三
车类 雷克萨斯
学生类 李四
《封装性》:数据和代码捆绑在一起,避免外界干扰和不确定性访问。封装可以使得代码模块化。
优点:
确保用户代码不会无意间破坏封装对象的状态
被封装的类的具体实现细节可以随时改变,而无须调整用户级别的代码
《继承性》:让某种类型对象获得另一个类型对象的属性和方法。继承可以扩展已存在的代码
《多态性》:同一事物表现出不同事物的能力,即向不同对象发送同一消息,不同的对象在接收时会产生不同的行为(重载实现编译时多态,虚函数实现运行时多态)。多态的目的则是为了接口重用
静态多态: 静态多态是在程序《编译阶段》已经确定将要执行的状态。 (函数重载,模板)
动态多态:动态多态是在程序《运行阶段》才能确定将要执行的状态。 (虚函数覆盖)
简单的理解:面向对象就是把所有代码写入到类中
C++面向对象的三大特性相关推荐
- Java学习笔记二十五:Java面向对象的三大特性之多态
Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...
- 面向对象的三大特性之继承
# 面向对象的三大特性之继承# 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好 (如机器人) # 当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好 (动物-- ...
- 到底什么是面向对象,面试中怎么回答。面向过程和面向对象的区别是什么。java跨平台特性以及java和C++的区别。面向对象的三大特性——封装、继承和多态。面向对象的高拓展性以及低耦合度怎么体现?
Java语言具有的特点:面向对象.跨平台.多线程以及网络编程 1. 和C++的区别 1.1 Java隐蔽了C++的指针,避免指针直接操作,程序更加安全. 1.2 Java类继承只能单继承,避免了C++ ...
- 面向对象之三大特性:继承,封装,多态
python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分 ...
- Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数)...
Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数) https://mubu.com/doc/1AqL_M0IbW 继承之钻石继承 多态 封装 几个装饰 ...
- polymorphism java_Java基础-面向对象第三大特性之多态(polymorphism)
Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...
- C++ 面向对象程序三大特性之 继承
目录 继承的概念 继承的定义及使用 继承方式和访问权限 基类和派生类对象的赋值转换 继承中的各成员的作用域 派生类的默认成员函数 构造函数 拷贝构造 赋值运算符重载函数 析构函数 继承与友元 继承与静 ...
- 面向对象的三大特性:封装、继承、多态
面向对象的三大特性 面向对象的三大特性:封装.继承.多态 封装 封装,成员变量的封装,保证了数据的安全性.封装的好处:过滤了不合理的值.屏蔽内部的赋值过程.让外界不必关注内部的细节 Set方法 1. ...
- 面向对象:三大特性与五大原则
面向对象:三大特性与五大原则 面向对象(Object Oriented, OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布 ...
- java面向对象特性_java面向对象编程三大特性
一说到java面向对象编程就想到面向对象的三大特性,封装,继承和多态,下面我们来具体分析以下这三大特性在编程中是如何具体体现的. 封装 将类的属性和具体实现细节隐藏,只提供相关的接口和方法来对隐藏信息 ...
最新文章
- 嵌入式系统开发过程中遇到的——volatile
- 自定义表单mysql_自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB)...
- MATLAB报错“Integers can only be raised to positive integral powers.“
- 经典C语言程序100例之二三
- 【最详细】BFPRT算法:时间复杂度O(n)求第k小的数字
- 简单的flash小动画成品_怎么制作flash动画?看这里怎么说。
- GATK之VariantAnnotator
- bzoj3524: [Poi2014]Couriers / bzoj2223: [Coci 2009]PATULJCI 主席树
- 【Struts1.2总结系列】struts-config.xml配置
- [转载] Python面向对象编程系列第一篇
- CentOS7更换阿里yum源
- android自定义速度仪表盘,自定义View实战:汽车速度仪表盘
- 极域电子教室师生端连接不上怎么解决
- 中科院生物信息学题目整理
- Linux 终端浏览器 w3m
- 三十而立~2019年终总结
- 联想拯救者wif开不了_联想拯救者wifi开关
- Kinect for Windows SDK v2.0 开发笔记 (十三) 高清面部帧(4) 面部模型构建器
- 华为:交付服务体系怎么提升一线作业人员的工作体验?
- 如何查看linux内核版本
热门文章
- easyui源码翻译1.32--Resizable(调整大小)
- particles.js粒子特效(常用登录页背景)
- java把string转换为int_java如何把String类型转换为int类型
- 固安天地人计算机学校,固安风水宝地
- java项目连接mysql时报错:
- T123AI芯片简介
- python模块导入教学_【python基础课|今日教学内容:Python导入模块的方式,学python的必备技能】- 环球网校...
- jira使用教程 一(从官方文档理解)
- Adobe Premiere Rush CC 2020中文版
- TileMill 快速入门