首页 > 其他分享 >多态

多态

时间:2024-03-31 19:01:21浏览次数:14  
标签:函数 静态 子类 多态 地址 动态

多态:静态多态,动态多态

静态多态:函数重载、运算符重载

动态多态:派生类和虚函数实现运行时多态

静态多态与动态多态的区别:

静态多态的函数地址早绑定-编译阶段确定函数地址

动态多态的函数地址晚绑定-运行阶段确定函数地址

多态满足条件:
有继承关系

子类重写父类的虚函数

多态使用条件:
父类指针或引用指向子类对象

 

#include <iostream>


class Animal{
    public:
    void speak(){
        std::cout<<"动物在说话"<<std::endl;
    }
    virtual void speak1(){
        std::cout<<"动物1在说话"<<std::endl;
    }
};

class Dog:public Animal{
    public:
    void speak(){
        std::cout<<"小狗在说话"<<std::endl;
    };
    void speak1(){
        std::cout<<"小狗1在说话"<<std::endl;
    };
};

class Cat:public Animal{
    public:
    void speak(){
        std::cout<<"小猫在说话"<<std::endl;
    };
     void speak1(){
        std::cout<<"小猫1在说话"<<std::endl;
    };
};

void doSpeak(Animal &animal){
    animal.speak();
    animal.speak1();

}

int main(){
    Dog dog;
    doSpeak(dog);
    Cat cat;
    doSpeak(cat);
    return 0;
}

  

标签:函数,静态,子类,多态,地址,动态
From: https://www.cnblogs.com/gishuanhuan/p/18107086

相关文章

  • Python面向对象多态实现原理及代码实例
    Python面向对象编程中的多态性表示的是同一种操作可以在不同的对象上有不同的表现。多态性指的是可以无视对象的具体类型,而直接调用某个方法,这个方法会根据对象的实际类型而进行不同的操作。这是通过继承和重写方法实现的。在Python中,任何类都有一个公共的祖先:object类。Python中......
  • 多态在模板类中的应用
    先看一个多态的例子:classHuman{public:virtualvoideat=0;virtual~Human(){}};classMen:publicHuman{public:virtualvoideat(){cout<<"男人"<<endl;}};classWomen:publicHuman{public:virtu......
  • C++精品小案例:C++中的多态性及其实现、模板元编程及其在C++中的应用
    1.C++中的多态性及其实现多态性是面向对象编程的三大特性之一,它允许使用父类类型的指针或引用来指向子类对象,并通过这个父类类型的指针或引用来调用实际子类的成员函数。这样,就可以在运行时确定应该调用哪个具体的函数实现,从而实现一个接口多种形态。多态性主要通过虚函数来......
  • C++继承、多态代码备忘录
    HelloWorld#include<iostream>//Basedon64-bitmachines.//1.SizeofABCis16bytes,8bytesforvptr,1byteforchara,7bytes//padding.//2.ThevptrpointtothevtableofABC,thevtablecontainstheaddressof//thevirtualfunct......
  • Java中的多态性:面向对象世界的关键特性
    引言:多态性是面向对象编程(OOP)的核心概念之一,它允许方法在不同对象中具有不同的表现形式。在Java中,多态性不仅提高了代码的灵活性和可扩展性,还使得程序设计更加简洁和优雅。本文将详细探讨Java中多态性的工作原理、实现方式以及它的应用场景。多态性的定义:多态性指的是同......
  • Java 多态、包、final、权限修饰符、静态代码块
    多态Java多态是指一个对象可以具有多种形态。它是面向对象编程的一个重要特性,允许子类对象可以被当作父类对象使用。多态的实现主要依赖于继承、接口和方法重写。在Java中,多态的实现主要通过以下两种方式:继承:子类继承父类的属性和方法,可以对方法进行重写(覆盖),从而实现不同的......
  • 多态的应用(包含具体实例)
    一、多态是什么?1.什么是多态:多态就是多种状态:同一个行为,不同的子类表现出来不同的形态。多态指的就是同一个方法调用,然后由于对象不同会产生不同的行为。2.多态的好处:为了提高代码的扩展性,符合面向对象的设计原则:开闭原则。开闭原则:指的就是扩展是开放的,修改是关闭的......
  • JAVA高级面向对象二:多态下的类型转换问题
     packagecom.itheima.多态;publicclassTest{//多态好处publicstaticvoidmain(String[]args){////好处1:实现解耦合,右边对象可以随时切换,后续业务随即改变//Peoplep1=newTeacher();//p1.run();////好处2:可以使用父......
  • JAVA高级面向对象二:认识多态 多态的好处
    1.多态:在继承/实现情况下的一种现象,表现为对象多态(儿子,学生),行为多态(跑的快慢)方法编译看左边,运行看右边  变量编译看左边,运行看左边 packagecom.itheima.多态;publicclassTest{//对象多态,行为多态publicstaticvoidmain(String[]args){//1.对象......
  • C#_继承_多态_抽象类_虚方法_密封类_静态类
    文章目录前言类的继承继承类的构造函数子类访问父类访问修饰符测试多态_函数重载多态_运算符重载可重载与不可重载的运算符抽象类虚方法new和override密封类和静态类结构体上期习题答案本期习题前言C#是面向对象的编程语言,面向对象编程的四项基本原则:抽象:将......