class_18:多态

cpp 复制代码
#include <iostream>

using namespace std;

class RemoteCon{
public:
    virtual void openUtils()
    {
        cout<<"base:open "<<endl;
    }
};

class TvRemoteCon:public RemoteCon{
public:
    void openUtils () override
    {
        cout<<"TV open "<<endl;
    }
};

class LightCon:public RemoteCon{
public:
    void openUtils () override
    {
        cout<<"Light open "<<endl;
    }
};

void test(RemoteCon &base)
{
    base.openUtils();
}
int main()
{
    //父类的指针指向子类的对象
    RemoteCon *r = new TvRemoteCon;
    r->openUtils();

    RemoteCon *r1 = new LightCon;
    r1->openUtils();

    //父类的引用指向子类的对象
    TvRemoteCon tv;
    test(tv);//RemoteCon &base = tv
    return 0;
}
相关推荐
啾啾Fun4 分钟前
[java基础-JVM篇]3_JVM类加载机制
java·开发语言·jvm
Kevin_K242 分钟前
MAC电脑 初始化 开发环境(Java + Node)
java·开发语言·macos
Dyan_csdn43 分钟前
【Java项目】基于Spring Boot的火车订票管理系统
java·开发语言·spring boot
JiaJunRun1 小时前
Java集合体系结构面试题
java·开发语言·windows·学习·安全
五行星辰1 小时前
Hutool - Setting:功能更强大的 Setting 配置文件和 Properties 封装
java·开发语言·后端
爱上妖精的尾巴1 小时前
3-1 WPS JS宏工作簿的新建与保存(批量新建工作簿)学习笔记
开发语言·javascript·笔记·js·wps
C#Thread2 小时前
C#上位机--简述
开发语言·c#
Mr.Wang8092 小时前
条款24:若所有参数皆需类型转换,请为此采用 non-member 函数
开发语言·c++
幻想趾于现实2 小时前
C#文件操作
开发语言·c#
啾啾Fun2 小时前
[java基础-JVM篇]1_JVM自动内存管理
java·开发语言·jvm