多态是怎么回事

作者: cpp加油站 | 来源:发表于2018-07-30 11:04 被阅读36次

1. 多态的定义

就是同一个接口,不同的实例有不同的实现方式。

2. 多态的作用

在继承的同时,每一个派生类都有属于自己的独特的方法,实现接口的重用。

3. 多态的实现

具体实现来看,就是父类定义虚函数,子类去实现这个函数,然后使用父类指针去指向子类,再去调用这个函数的时候,就会发生多态。

4. 多态的原理

一个类有虚函数就会产生虚函数表和虚表指针,而多态其实是根据虚函数表来实现的,虚函数表属于整个类,然后每个对象会有一个虚表指针,父类指针指向子类的时候,相当于产生了一个子类对象,那么调用虚函数的时候,首先找到该对象的虚表指针,然后通过虚表指针找到子类虚函数表,进而找到子类函数。
注意:子类只有一个虚表指针,构造的时候是先生成父类的虚表指针,然后子类的虚表指针覆盖掉父类虚表指针。

5. 继承在内存中布局

一个子类在内存中布局是,首先4个字节存放虚表指针,然后存放父类成员变量,接着就是子类成员变量。

相关文章

  • 多态是怎么回事

    1. 多态的定义 就是同一个接口,不同的实例有不同的实现方式。 2. 多态的作用 在继承的同时,每一个派生类都有属...

  • 1.9 多态基本概念

    本小节知识点: 【了解】什么是多态? 【掌握】多态的条件 【了解】多态的优点 1.什么是多态? 什么是多态:多态就...

  • Java_basic_10: 多态polymorphism

    多态polymorphism 多态是指对象的多种形态 主要可以分为引用多态和方法多态 继承是多态的实现基础 引用多...

  • 多态的C++实现

    多态的C++实现 1 多态的原理 什么是多态?多态是面向对象的特性之一,只用父类指针指向子类的对象。 1.1 多态...

  • 详解Java多态

    详解Java多态 多态定义 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态...

  • 多态

    1.多态 1.多态 1.1 要点 多态是方法的多态,不是属性的多态 多态的存在有三个必要条件:继承;方法重写;父类...

  • Java面向对象三大特性之多态

    多态(Polymorphism) 1. 什么是多态呢? 多态是面向对象程序设计(OOP)的一个重要特征,多态的字面...

  • Python:多态、鸭子模型和抽象基类

    1. 多态 什么是多态-- 多态,指的是一种事务具有多种形态;-- python是一种动态语言,默认支持多态,同一...

  • 编译时多态 与 运行时多态

    在了解什么是编译时多态 与 运行时多态前,我们先了解下什么是多态 多态  多态指同一个实体同时具有多种形式。它是面...

  • 对Java中多态的理解

    首先给多态下个定义: 对于面向对象而已,多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载...

网友评论

    本文标题:多态是怎么回事

    本文链接:https://www.haomeiwen.com/subject/dygxvftx.html