什么是多态

简介: 什么是多态

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月前
|
Java 编译器
多态
多态
18 2
|
7月前
|
存储 C++
C++中的多态
C++中的多态
67 0
什么是多态?
什么是多态?
57 0
什么是多态。
什么是多态。
87 0
|
7月前
|
存储 编译器 C++
c++多态
c++多态
32 0
|
7月前
|
存储 编译器 C++
C++【多态】
C++【多态】
71 0
|
7月前
|
编译器 C++
【C++】:多态
【C++】:多态
65 0
|
大数据 编译器 C++
|
编译器 C++