什么是多态

简介: 什么是多态

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.子类对象指向父类引用,父类引用指向子类对象两种不同的实现方式

相关文章
|
6天前
|
存储 C++
C++中的多态
C++中的多态
8 0
|
7月前
多态
对于方法而言 优先使 用子类方法 对于成 员变量而言 优先使用 父类变量 访问成员变量的两种方式: 1.直接通过对象名称访问成员变量,看等号左边是谁,优先用谁,没有向上寻找 2.间接通过成员方法访问成员变量,看该方法属于谁。优先用谁,没有向上寻找
27 0
|
6天前
深入理解多态
深入理解多态
11 0
|
7月前
|
存储 设计模式 编译器
|
6天前
|
存储 C++
C++:多态
C++:多态
29 0
|
9月前
|
安全
|
10月前
|
编译器 C++
多态(C++)上
多态(C++)
29 0
|
10月前
|
编译器
多态的初识
多态的初识
|
10月前
|
C#
C#之多态
C#之多态
40 0