首页 > 其他分享 >多态

多态

时间:2023-05-07 21:56:09浏览次数:26  
标签:函数 对象 基类 多态 派生类 指针

多态就是不同继承类的对象,对同一行为所做出的不同反应,基类的指针指向或绑定到派生类的对象,使得基类的指针产生不同的表现方式

多态分为静态多态和动态多态

静态多态通过重载和模板编程实现,是在编译时就确定

动态多态则是通过虚函数实现,含有虚函数的类产生的对象会有一个虚指针,它指向该对象的虚函数表

当基类的指针指向派生类对象时,它就会遍历调用该对象虚函数表中的对应函数,从而实现多态,所以它的调用是运行时决定的

基类指针能够指向派生类对象,而派生类指针不能指向基类对象,这是因为派生类指针指向基类对象可能会访问到不属于基类对象的内存从而引起错误

 

纯虚函数

virtual void fun() = 0;

含有纯虚函数的类称为虚基类,不能实例化对象,纯虚函数必须要实现后才不是虚基类。

标签:函数,对象,基类,多态,派生类,指针
From: https://www.cnblogs.com/cintang/p/17380234.html

相关文章

  • 多态性与鸭子类型
    多态与多态性多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪classAnimal:#同一类事物:动物deftalk(self):passclassCat(Animal):#动物的形态之一:猫deftalk(self):print('喵喵喵')classDog(Animal):#动物的形态之二:狗d......
  • Java多态性
    Java多态性面向对象三大特征:封装性,继承性,多态性.extends继承或者implements实现,是多态的前提一个对象拥有多种形态这就是:对象的多态性多态的实现代码中体现多态性:父类引用指向子类对象格式父类名称对象名=new子类名称();或者接口名称对象名=new实现类......
  • C++虚函数详解:多态性实现原理及其在面向对象编程中的应用
    在面向对象的编程中,多态性是一个非常重要的概念。多态性意味着在不同的上下文中使用同一对象时,可以产生不同的行为。C++是一种面向对象的编程语言,在C++中,虚函数是实现多态性的关键什么是虚函数虚函数是一个在基类中声明的函数,它可以被子类重写并提供不同的实现。在C++中,使用关......
  • python 多态
    在Python3中,多态是指同一个方法或者操作可以在不同的对象上产生不同的行为或结果。这意味着一个函数可以接受不同类型的参数,并且可以表现出不同的行为。生活中的例子如下:假设你想要买一台新电视机,你可能会去电器店看看有哪些电视可供选择。当你开始比较价格和功能时,你可能会发......
  • 电脑组装的具体实现(多态)
    #include<bits/stdc++.h>usingnamespacestd;classCPU{public:virtualvoidcaculate()=0;};classVideocard{public:virtualvoiddisplay()=0;};//内存条classMemory{public:virtualvoidstorage()=0;};//电脑class......
  • 关于java中的多态和对实例化对象的一些理解
    java面向对象三大特征即为:继承封装多态。而多态需要三大必要条件。分别是:继承、方法重写、父类引用指向子类对象。我们先一个一个来理解。1、首先是继承和重写。这个很简单。因为多态就是建立在不同的重写之上的。也就是说多态就是在使用着一个方法的不同重写。而重写又是依赖着......
  • Provisional heads are shown、NullPointerException空指针异常?堆栈与队列的区别?Java
    Provisionalheadsareshown排查是否插件拦截,我的以前没有这种,所以排除本地网络节点问题,连接不到图片服务器,以下是解决方法:1.进入到C盘Windows文件夹System32/drivers/etc目录下,打开hosts文件,绑定下2.改下本地dns为公共dns网络节点导致的问题,一般为运营商导致,产生问题的原因为......
  • 开心档之C++ 多态
    C++多态多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基类Shape被派生为两个类,如下所示:实例#include<iostream>usingnamespac......
  • 在VS中怎么查看单类布局报告?看了就可以直接看多态和菱形的类的继承情况了!
    1,打开文件所在路径  2.复制文件路径  3.打开vs开发者命令工具 4.进入到源文件目录   5.查看命令:cd /d1reportSingleClassLayout类名 "xxx.cpp" ......
  • C++中什么是多态,多态需要满足什么条件,怎么使用,它的实现原理是什么?
    概念:多态是指一个接口,根据传入的参数不同,呈现多种多态,多态分为静态多态和动态多态。静态多态:像函数重载和运算符重载属于静态多态,复用函数名。它的函数地址在编译阶段就已经确定了。动态多态:通过派生类和虚函数实现运行时多态(有子类继承,子类重写父类虚函数),它的函数......