C++八股文之面向对象的三大特性(继承、封装、多态)

C++面向对象的三大特性

访问权限

C++通过 public、protected、private 三个关键字来控制成员变ᰁ和成员函数的访问权限,它们分别表示公有的、 受保护的、私有的,被称为成员访问限定符。

类的内部(定义类的代码内部),⽆论成员被声明为 public、protected 还是 private,都是可以互相访问的, 没有访问权限的限制。

类的外部(定义类的代码之外),只能通过对象访问成员,并且通过对象只能访问 public 属性的成员,不能访 问 private、protected 属性的成员。

⽆论共有继承、私有和保护继承,私有成员不能被“派⽣类”访问,基类中的共有和保护成员能被“派⽣类”访问。

对于共有继承,只有基类中的共有成员能被“派⽣类对象”访问,保护和私有成员不能被“派⽣类对象”访问。对于私有和保护继承,基类中的所有成员不能被“派⽣类对象”访问。

1. 继承

定义:

让某种类型对象获得另⼀个类型对象的属性⽅法

功能:

它可以使⽤现有类的所有功能,并在⽆需重新编写原来的类的情况下对这些功能进⾏扩展

常⻅的继承有三种⽅式:

  1. 实现继承:指使⽤基类的属性和⽅法⽽⽆需额外编码的能⼒
  2. 接⼝继承:指仅使⽤属性和⽅法的名称、但是⼦类必须提供实现的能⼒
  3. 可视继承:指⼦窗体(类)使⽤基窗体(类)的外观和实现代码的能⼒

例如:

将⼈定义为⼀个抽象类,拥有姓名、性别、年龄等公共属性,吃饭、睡觉等公共⽅法,在定义⼀个具体的⼈时,就可以继承这个抽象类,既保留了公共属性和⽅法,也可以在此基础上扩展跳舞、唱歌等特有⽅法。

2. 封装

定义:

数据和代码捆绑在⼀起,避免外界⼲扰和不确定性访问;

功能:

把客观事物封装成抽象的类,并且类可以把⾃⼰的数据和⽅法只让可信的类或者对象操作,对不可信的进⾏信息隐藏。

例如:将公共的数据或⽅法使⽤public修饰,⽽不希望被访问的数据或⽅法采⽤private修饰。

3. 多态

定义:

同⼀事物表现出不同事物的能⼒,即向不同对象发送同⼀消息,不同的对象在接收时会产⽣不同的⾏为(重载实现编译时多态,虚函数实现运⾏时多态

功能:

多态性是允许你将⽗对象设置成为和⼀个或更多的他的⼦对象相等的技术,赋值之后,⽗对象就可以根据当前赋值 给它的⼦对象的特性以不同的⽅式运作;

简单⼀句话:允许将⼦类类型的指针赋值给⽗类类型的指针。

实现多态有两种⽅式

  1. 覆盖(override): 是指⼦类重新定义⽗类的虚函数的做法
  2. 重载(overload): 是指允许存在多个同名函数,⽽这些函数的参数表不同(或许参数个数不同,或许参数 类型不同,或许两者都不同)

例如: 基类是⼀个抽象对象——⼈,那学⽣、运动员也是⼈,⽽使⽤这个抽象对象既可以表示学⽣、也可以表示运动员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J^T

谢谢帅哥/美女

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值