面向对象-理解多态看这一篇博客就行了

简介: 面向对象-理解多态看这一篇博客就行了

多态

前言

上周老师讲课再次讲到了多态,经过课下的消化,又有一些新的收获。学习多态还是要从基本的概念上入手,明确基本概念,下面来学习一下基本概念并与代码进行对应。通过编写代码也能够很好的检验是否学会了多态。

概念

多态是指为不同数据类型的实体提供统一的接口,同一操作作用于不同的对象,可以有不同的解释产生不同的执行结果.

这是对多态的一种解释。整体上看有点复杂不知道怎么入手,我们先用计算机思维逐层拆解。先拆为两部分,第一部分:为不同数据类型的实体提供统一的接口和第二部:同一操作作用于不同的对象,可以有不同的解释产生不同的执行结果.


我们先来看前一部分,什么是不同类型的实体,什么统一的接口。

我们先对应到代码中:




在这一张图的代码中,不同的实体类型是用方框圈住他们表示不同的运算工厂,分别表示加法工厂、减法工厂、乘法工厂、除法工厂。


统一的接口体现在用椭圆框住的部分,我们可以看出他们都实现了统一的接口也就是CreateOperation()方法。


我们再来看第二部分:同一操作作用于不同的对象,可以有不同的解释产生不同的执行结果.






什么是同一操作,不同对象,什么是不同的解释 产生不同的执行结果

首先我们先来看第一张图,从第一张图我们可以看到,同一操作是都调用了CreateOpertion()方法,不同对象是传给CreateOpertion是加法对象 和减法对象,不同的执行结果,来看最后一张图。getresult()返回的值不一样。

总结

觉得博主解释的有问题,欢迎进行评论或者是私信,博主还是程序小白,如有解释有误请直接指出,一起进步。

目录
相关文章
|
12月前
|
编译器 C++
【C++】类和对象(下篇)
【C++】类和对象(下篇)
34 0
|
2月前
|
Python
面向对象高级之魔法方法
面向对象高级之魔法方法
|
4月前
|
Java
JavaSE——面向对象高级二(1/4)-面向对象三大特征之三-多态(认识多态、使用多态的好处、多态下的类型转换问题)
JavaSE——面向对象高级二(1/4)-面向对象三大特征之三-多态(认识多态、使用多态的好处、多态下的类型转换问题)
31 0
|
5月前
|
存储 编译器 C语言
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针(中)
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针
25 0
|
5月前
|
Java C语言 C++
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针(上)
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针
34 0
|
5月前
|
存储 编译器 程序员
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针(下)
从C语言到C++④(第二章_类和对象_上篇)->类->封装->this指针
22 0
|
5月前
|
安全 Swift 开发者
【Swift开发专栏】Swift类的继承与多态
【4月更文挑战第30天】Swift中的OOP聚焦于类继承与多态,提供代码复用和类型安全。继承通过`class`和冒号实现,子类继承父类属性和方法,支持单继承以降低复杂性。多态借助协议和类型兼容实现,允许统一处理不同类型的对象。继承用于构建复杂类,多态则使代码更通用、可扩展。理解并运用这些概念对Swift开发者至关重要。
44 0
|
12月前
|
存储 编译器 C语言
【C++】类和对象(上篇)
【C++】类和对象(上篇)
57 0
|
5月前
|
存储 编译器 C语言
类和对象(上篇)
类和对象(上篇)
43 1
|
5月前
|
编译器 C++
类和对象(下篇)
类和对象(下篇)
46 1