面向对象的三个基本特征
面向对象的三个基本特征是:封装、继承、多态。
- 封装可以隐藏实现细节,使得代码模块化;
- 继承可以扩展已存在的代码模块(类);
- 多态则是为了实现另一个目的——接口重用!
它们的目的都是为了——代码重用。
![](https://img-blog.csdnimg.cn/20210531202113932.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ppbUJyYWRkb2Nr,size_16,color_FFFFFF,t_70)
封装:
目的:隐藏实现细节,使得代码模块化
方法:用private、protect、public关键字对成员变量、函数进行修饰
继承:
目的:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承的过程,就是从一般到特殊的过程。
多态:允许将子类类型的指针赋值给父类类型的指针,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。表面上调用的父类的接口,实际调用的是各个子类的实现函数。从而实现了一个接口,多种实现方式。
目的:一个接口,多种方法。
方法:父类中声明虚函数、子类中重写虚函数。
实现原理:每个类都有一份属于自己的虚函数表,当子类重写虚函数并向上转型时,调用的就是子类重写的虚函数。
注意:要实现多态的必要条件:
- 继承
- 覆盖父类虚函数
- 向上转型
- 必须是引用类型或指针