博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++抽象,封装,继承,多态
阅读量:6226 次
发布时间:2019-06-21

本文共 1119 字,大约阅读时间需要 3 分钟。

面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口等

有的人说面向对象有四大基本特征,抽象,封装,继承,多态,但其实抽象可以抛出在外,本质来说,面向对象的基本特征是继承,封装,多态。

先来说C++中的对象和类:

类是对象的抽象,而对象是类的具体化,而要使用类的功能,具体就要先定义一个对象

例如:class Student { };  Student stu里面的stu就是对象   还有一种定义的方法 class { }stu1,stu2;

封装:其实封装和抽象可以归结到一起,抽象的是具体的实现,封装的是接口,封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成”类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,特定的访问权限来使用类的成员。封装可以隐藏实现细节, 使得代码模块化。

封装的简单一句话:封装就是将实例抽象得到的数据和行为(或功能)封装成一个类。

 

继承:继承是指这样一种能力,它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承的过程,就是从一般到特殊的过程,它是类与类之间的一种关系,一个类通过继承的方法,可以得到另一个类属性和方法,达到代码重用的目的。

引申:

继承,有三种继承方法,分为实现继承,接口继承,可视化继承。

 实现继承就是重新写一个函数去实现。用纯虚函数实现。

 接口继承是指纯粹继承父辈的老底,也可以去重新实现。用虚函数实现。  

可视化继承则是纯粹的全部自己实现,自己功能自己解决。对应的是非虚函数。

 

多态:C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖或者称为重写。而重载则是允许有多个同名的函数,而这些函数的参数列表不同,允许参数个数不同,参数类型不同,或者两者都不同。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数

多态简单一句话:一种调用,多种状态(一个接口,多种方法)

引申:

重载

同一个类中,函数名相同,参数列表不同的函数之间是重载关系。

覆盖
子类重写父类的虚函数,函数名相同,参数列表相同,返回值相同的虚函数。
隐藏(有两种情况)
1. 派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字。
2. 派生类的函数与基类的函数同名,并且参数也相同。但是基类函数没有virtual关键字。

 

转载于:https://www.cnblogs.com/hjt1806/p/9470871.html

你可能感兴趣的文章
ObjectOutputStream和ObjectInputStream
查看>>
static作用
查看>>
IT架构之IT架构标准——思维导图
查看>>
ZOJ3827 ACM-ICPC 2014 亚洲区域赛的比赛现场牡丹江I称号 Information Entropy 水的问题...
查看>>
List、Map和Set实现类
查看>>
Android Fragment 真正彻底的解决(下一个)
查看>>
zoj 3659 并检查集合
查看>>
VS2010如何调试IIS上的网站
查看>>
iPhone 6/plus iOS Safari fieldset border 边框消失
查看>>
Xms Xmx PermSize MaxPermSize 区别
查看>>
【转】预装(push)lib64中so文件查找错误
查看>>
《Python简明教程》总结
查看>>
构造 - HDU 5402 Travelling Salesman Problem
查看>>
[转]图解分布式一致性协议Paxos
查看>>
【SSH2(实用文章)】--Struts2文件上传和下载的例子
查看>>
Rust初步(七):格式化
查看>>
微服务架构的设计模式
查看>>
【C++】继承时构造函数和析构函数
查看>>
python风味之大杂烩
查看>>
NSDate & NSDateFormatter
查看>>