面向对象的三大特性

C++面向对象三大特性:封装、继承、多态。

封装

封装:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对象的使用者和设计者分开,可以隐藏实现细节包括包含私有成员,使得代码模块增加安全指数,同时提高软件的可维护性和可修改性。

总结来说封装这个特性包含两三特点:

  1. 结合性,即是将属性和方法结合

  2. 信息隐蔽性,利用接口机制隐蔽内部实现细节,只留下接口给外界调用

  3. 实现代码重用

继承

继承:类的派生指的是从已有类产生新类的过程。原有的类成为基类或父类,产生的新类称为派生类或子类,子类继承基类后,可以创建子类对象来调用基类的函数,变量等。

一般来说有三种继承方式:

  • 单一继承:子类继承一个父类。

  • 多重继承:一个子类继承多个父类,类与类之间用逗号隔开,每个类之前需要加上继承权限。

    • 若两个类有相同的变量或者函数,需要用类名限定符。如:obj.classA::i = 1;
  • 菱形继承:多重继承掺杂隔代继承 1-n-1 模式,此时需要用到虚继承。

继承权限的问题:

https://images2015.cnblogs.com/blog/1048430/201611/1048430-20161107095657280-1519112029.png

多态

可以简单的概括为“一个接口,多种方法”,即使用的是同一种接口,但是其效果各不相同。

多态分为:

  • 静态多态(编译期)

    • 模板:函数模板、类模板。

    • 函数的重载

  • 动态多态(运行期)

    • 虚函数

静态多态。静态多态的设计思想:对于相关的对象类型,直接实现它们各自的定义,不需要共有基类,甚至可以没有任何关系。只需要各个具体类的实现中要求相同的接口声明,静态多态本质上就是模板的具现化。

动态多态。对于相关的对象类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功能声明为多个公共的虚函数接口。各个子类重写这些虚函数,以完成具体的功能。具体实现就是c++的虚函数。

多态是以封装和继承为基础实现的性质,一个形态的多种表现方式。硬要解释的话可以说是一个接口,多个功能,在用父类指针调用函数时,实际调用的是指针指向的实际类型(子类)的成员函数。

比如你家有亲属结婚了,让你们家派个人来参加婚礼,邀请函写的是让你爸来,但是实际上你去了,或者你妹妹去了,这都是可以的,因为你们代表的是你爸,但是在你们去之前他们也不知道谁会去,只知道是你们家的人。可能是你爸爸,可能是你们家的其他人代表你爸参加。这就是多态。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值