什么是多态

简介: 什么是多态

1.什么是多态

**概念:**多态是指为不同数据类型的实体提供统一的接口(不同类型的实体指的是各个子类类型,统一的接口是父类指向子类的对象)

同一操作作用于不同的对象可以有不同的解释,产生不同的结果

多态,作为面向对象三大特征之一。通俗来说,如果我们现在有一个Animal类,类中有一个名为Shot()的抽象方法,Animal作为父类,而Dog、Cat继承了Animal,作为Animal的子类,分别实现了Shot方法,展现出了“猫叫”“狗叫”的不同状态。当然Animal的子类可以有多个,同一个“Shot”的行为展现出的是不同的叫声(不同的叫的状态),这就是多态的体现。

代码对应:

不同的数据类型(不同数据类型的对象,四个数据类型(OperationAdd、OperationSub、OperationMul、OperationDiv四个类的名称)),计算机里所有的对象都是数据,所有的数据都是对象。在上图的代码中,第一行的operFactory是AddFactory类型的实体,同时,AddFactory作为加法工厂,还可以替换成减、乘、除,operFactory对应成了相应的类型,

AddFactory()类型可以替换,而第二行 Operation oper = operFactory.CreateOperation();是没有变化的,CreateOperation是不同的类型的父类提供的统一的接口

系统根据对象所属的类别(±*/),引发对应类别的方法

OperationAdd\OperationSub\OperationMul\OperationDiv分别是不同数据类型的实体,它们都指向了oper(统一的接口)

2.子类对象指向父类引用,父类引用指向子类对象两种不同的实现方式

相关文章
|
3月前
|
存储 编译器 数据安全/隐私保护
【C++】多态
多态是面向对象编程中的重要特性,允许通过基类引用调用派生类的具体方法,实现代码的灵活性和扩展性。其核心机制包括虚函数、动态绑定及继承。通过声明虚函数并让派生类重写这些函数,可以在运行时决定具体调用哪个版本的方法。此外,多态还涉及虚函数表(vtable)的使用,其中存储了虚函数的指针,确保调用正确的实现。为了防止资源泄露,基类的析构函数应声明为虚函数。多态的底层实现涉及对象内部的虚函数表指针,指向特定于类的虚函数表,支持动态方法解析。
37 1
|
9月前
|
存储 C++
C++中的多态
C++中的多态
75 0
什么是多态?
什么是多态?
63 0
多态你真的了解吗?
多态你真的了解吗?
78 0
|
9月前
|
存储 C++
C++:多态
C++:多态
51 0
|
9月前
|
编译器 C++
【C++】:多态
【C++】:多态
70 0
|
Java
多态理解
多态理解
54 0
|
编译器 C++
【C++】非常重要的——多态(三)
【C++】非常重要的——多态
118 0