Cpp6 封装、继承和多态
继承
- 子类从父类继承成员变量
- 子类从父类继承成员函数
#include "stdafx.h"
class Person
{
public:int Age;int Sex;void Word(){printf("Person:Work");}
};class Teacher:public Person
{
public:int Level;
};int main()
{Teacher t;t.Age = -1; //合法但是不合理t.Sex = 2;t.Level = 3;return 0;
}
实现数据隐藏
为什么要隐藏数据成员
- 与前面比较,赋值的时候 合理不合法,手机的电路板也没有暴露在外面啊
- 根本的目的是可控
不要造相同的轮子
代码复用的两种体现方式:
- 继承
- 共用相同的函数
函数的重写
成员函数的重写特征:
- 不同的范围(分别位于派生类与基类)
- 函数名字相同
- 参数相同
- 基类函数必须有virtual关键字,称为虚函数
多态
多态就是可以让父类指针有多种形态。
C++中式通过虚函数实现的多态性
纯虚函数
- 虚函数目的是提供一个统一的接口,被继承的子类重载,以多态的形式被调用。
- 如果基类中的函数没有任何实现的意义,那么可以定位为纯虚函数。
virtual 返回类型 函数名(参数列表) =0; virtual int fuck(int count) =0;
- 含有纯虚函数的类被成为抽象类(abstract class),不能创建对象
- 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用
转载于:https://www.cnblogs.com/daoyi/articles/Cpp6-feng-zhuang-ji-cheng-he-duo-tai.html
Cpp6 封装、继承和多态相关推荐
- java 继承重写_java 封装 继承 重写 多态
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离.便于使用.提高重用性.提高安全性 封装原则: 将不需要对外提供的内容都隐藏起来.把属性都隐藏,提供公共方法对其访问. ...
- 面向对象 详解笔记 方法 类 对象 封装 继承 重写 多态 接口
文章目录 面向过程&面向对象 面向过程 面向对象 什么是面向对象 回顾方法及加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环和return的区别 方法名:注意规范就o ...
- 本质论之封装继承和多态的介绍
关于 类,我有一些话想说 说到类那就说到了面向对象的灵魂了,没有它也就没有了封装.继承and多态这些东西了.我还记得在读研期间每次看到这些都望而却步,甚至我搞不懂对象和类的区别(这里防止有人也不知道区 ...
- 黑马程序员_JAVA之面向对象(封装,继承和多态)
------- android培训.java培训.期待与您交流!---------- 面向对象 一.面向对象概述 定义: 面向对象(Object Oriented,OO)是软件开过过程中使用一种思维方 ...
- Java回顾 封装 继承和多态
封装 什么是封装 封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装时的权限控制符区别如下: 封装的意义 对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象 ...
- java 封装 继承和多态
2019独角兽企业重金招聘Python工程师标准>>> 多态无处不在.引用的概念最为困难.理解了引用才能理解多态的意义以及应用. 多态的应用的一大前提是继承.以及继承中的重写方法.继 ...
- python类与对象 封装继承与多态 0308
类与对象 初始化方法 init方法 带参实例化类 del方法 str方法 私有 继承 方法的重写 super 父类名称调父类方法 调用父类私有 间接调用 多继承 新式类经曲类 多态 类属性 类方法 静 ...
- 07 面向对象编程-结构、封装、继承、多态、接口
文章目录 Struct定义 struct 方法 工厂模式 面向对象三大特性 封装 继承 接口 多态 Golang支持面向对象编程,但是和传统面向对象有区别,并不是纯粹面向对象的语言,只能说Golang ...
- 浅谈对于封装、继承与多态的理解(Java)
目录 封装 继承 父类成员的访问 如何在子类中访问父类同名的成员 子类构造方法 代码块在继承上的执行顺序 多态 多态的实现条件 重写 多态的优缺点 面向对象程序的三大特征:封装继承和多态. 封装 · ...
- Java三大特性:封装,继承与多态
(尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/84592274冷血之心的博客) 目录 (一)封装 封装的定义 封装 ...
最新文章
- Hashtable 中的键值修改问题
- h5 video 手机上无法显示_怎样把手机上的导航显示在汽车屏幕上
- python期末项目书怎么写_自己写了一部书怎么出版
- linux dr校园网端口被占用,Dr.com端口占用的解决
- SharePoint 入门书籍推荐 转载来源http://www.cnblogs.com/jianyus/p/3513238.html
- 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
- oracle Fusion Applications 简介 (Oracle融合管理软件简介)
- 12个C语言必背实例
- html密码查看器,浏览器密码查看工具(WebBrowserPassView)
- mysql 设置忽略大小写
- DSPE-PEG4-Mal分子式:C56H103N2O15P的分子量介绍
- 简洁的微信Markdown编辑器
- 重磅!京东云自研第四代云主机发布;曝国外物理学家开发出用于量子计算机的汇编语言...
- maya扇子动画_MAYA制作动画的十大原理!
- ulimit -u
- GMSL部分问题解答/含官方FAE解答
- 中医药大学远程教育计算机,北京中医药大学远程教育计算机基础(2008版) 第6次...
- python读取文件夹下txt文件,并转化成excel
- PLSQL如何保存用户名和密码
- Fluke SimpliFiber Pro FTK1475做光纤损耗测试
热门文章
- 初始html(常用标签)
- window之hosts
- 数据库——startup,startup mount,startup nomount有什么区别
- Apache HBase快照介绍
- 推荐算法-聚类-均值偏移聚类(爬山算法)
- C语言-动态创建二维数组
- 【Linux 内核】调度器 ③ ( sched_class 调度类结构体分析 | next 字段 | enqueue_task 函数 | dequeue_task 函数 )
- 【Android 返回堆栈管理】打印 Android 中当前运行的 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 在相同 Stack 中的不同 Task
- 【组合数学】生成函数 ( 使用生成函数求解多重集 r 组合数 )
- 【Android 应用开发】Android应用的自动更新模块