【C++】多态-最全解析(多态是什么?如何使用多态?多态的底层原理是什么?)

07-21 1327阅读

目录

一、前言

二、多态是什么?

三、多态的定义及实现 

🔥 多态的构成条件🔥

🔥 虚函数的重写🔥

🔥虚函数重写的两个例外 🔥

🍍 协变返回类型

🥝 析构函数的重写

🔥C++11 的 override 和 final 🔥

 🍑override

 🍉final

🔥重载、覆盖(重写)、隐藏(重定义)的对比 🔥

💢重载(Overloading) 

💢覆盖(重写)(Overriding) 

💢重定义(隐藏)(Hiding) 

四、抽象类 

五、多态的原理 

💢多态性的基本原理 

💧虚函数表指针💧

💧虚函数表💧

💧虚函数表和虚指针相互关联构成 --- 多态💧

💢 动态绑定和静态绑定

六、多态的常考面试题 

七、共勉 


一、前言

   多态 ----  是 面向对象 三大基本特征中的最后一个,多态 可以实现 “一个接口,多种方法”,比如 父类 和 子类 中的同名方法,在增加了多态后,调用同名函数时,可以根据不同的对象(父类对象或子类对象)调用属于自己的函数,实现不同的方法,因此 多态 的实现依赖于 继承

        如果大家还不太了解 继承 可以先看看这篇文章:C++继承详解

二、多态是什么?

        多态(Polymorphism)这个词来源于 希腊语,意思是“多种形态”。在编程中,多态允许你  使用相同的接口(方法或函数)来   处理不同的 数据类型 或 对象。这使得代码更加灵活和可扩展。

        通俗一点:不同对象  -----  完成同一件事情   -----  产生不同的结果


举例1:

比如 春节回家买票 (看作一件事情),当普通人买票时,是全价买票 ;学生买票时,半价买票;军人买票时是优先买票。(不同的对象,产生了不同的结果)

【C++】多态-最全解析(多态是什么?如何使用多态?多态的底层原理是什么?)


举例2: 

为了争夺在线支付市场,支付宝年底经常会做诱人的 扫红包-支付-给奖励金 的活动。

那么大家想想为什么有人扫的红包又大又新鲜 8块、10 块...而有人扫的红包都是1毛,5...。其实这背后也是一个多态行为。 

总结一下:同样是扫码动作(看作一件事情),不同的用户扫得到的不-样的红包(不同的对象,产生了不同的结果),这也是一种多态行为。 

【C++】多态-最全解析(多态是什么?如何使用多态?多态的底层原理是什么?)


代码举例:引出 本篇文章所要学习的 关于多态的 十万个 为什么? 

假设你在家里有一只宠物。宠物可以是 猫、狗 或 鸟。每种宠物都会发出叫声,但每种宠物的叫声不同。我们可以定义一个基类 Pet,然后让 Cat、Dog 和 Bird 继承自这个基类。 

class Pet {
public:
    virtual void makeSound() {
        cout 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]