什么是多态?

简介: 什么是多态?

提到了多态,那么我们首相应该想到的是封装和继承,它们三者之间的关系,我们可以是:封装→继承→多态。


9c622c79458b4d8198f81013a5bffcbd.png

首先来看这一版代码,作者把四个运算方法写到了一个方法中,说明他没有做到抽象,此时如果我要再加一种新的运算方法呢,那就只能修改这个方法中的代码,再加一层switch。


1198e4ea33344f70a35aa1ece6863153.png


接下来再看这一版,作者把四个运算方法分别封装到了各个类中,抽象出来一个运算类,这样我们再想添加一种新的运算方法是不是就会变得很容易呢,不需要修改原来的代码,我们直接新写一个子运算子类来继承Operation这个运算类就可以了。


b9c5efb668344bd2be0798f9484af504.png


大家再看一下这段代码,其中首先声明了一个引用变量oper,其次在下面的switch中传入不同的case中的内容来决定oper这个引用变量具体指向的哪个子类的对象。


这也就对应了多态这个概念中的为不同的数据类型的实体提供统一的接口,不同的数据类型实体指的就是各个case中的new Operationxx();


b6359ffab2e44fdcb809fb98bc9cdbee.png

84729d46817b400693f864286edaac81.png

0c441c8fe52949ff9bbfb83a4a4b846e.png


以上代码就是对应多态中的,同一操作拥有不同的解释,产生不同的执行结果。


目录
相关文章
|
编译器 C语言 C++
49 C++ - 多态
49 C++ - 多态
36 0
|
6月前
|
Java 关系型数据库
多态
多态
40 0
|
6月前
|
编译器 C++
多态的讲解
多态的讲解
46 2
|
6月前
深入理解多态
深入理解多态
|
C++
多态(C++)下
多态(C++)
79 0
多态你真的了解吗?
多态你真的了解吗?
72 0
|
6月前
|
存储 编译器 C++
|
编译器 C++