C++封装继承多态的理解

2021/8/9 12:35:57

本文主要是介绍C++封装继承多态的理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

封装:
也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。

继承(inheritance):C++通过类派生机制来支持继承。被继承的类型称为基类或超类,新产生的类为派生类或子类。保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。继承和派生的目的是保持已有类的特性并构造新类。

继承的目的:实现代码重用。派生的目的:实现代码扩充。三种继承方式:public、protected、private。

继承时的构造函数:(1)、基类的构造函数不能被继承,派生类中需要声明自己的构造函数;(2)、声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类成员的初始化,自动调用基类构造函数完成;(3)、派生类的构造函数需要给基类的构造函数传递参数;

多态:
就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

多态(Polymorphic)性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数。C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖或者称为重写。而重载则是允许有多个同名的函数,而这些函数的参数列表不同,允许参数个数不同,参数类型不同,或者两者都不同。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。

多态的目的则是为了接口重用

C++中,实现多态有以下方法:虚函数、抽象类、重载、覆盖、模板。

函数重载(Overload):指在相同作用域里(如同一类中),函数同名不同参,返回值则不用理会,不同参可以是不同个数,也可以是不同类型。效果:根据实参的个数和类型调用对应的函数体。

函数覆盖(Override)(函数重写):指派生类中的函数覆盖基类中的同名同参虚函数,因此作用域不同。效果:基类指针或引用访问虚函数时会根据实例的类型调用对应的函数。

函数隐藏(Hide):对于子类中与基类同名的函数,如果不是覆盖那就成了隐藏。两种情况:(1)、同名不同参;(2)、同名同参但基类不是virtual函数。

 



这篇关于C++封装继承多态的理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程