美文网首页
用通俗易懂的多态世界观实例:理解python类的多态

用通俗易懂的多态世界观实例:理解python类的多态

作者: 码字的程序员 | 来源:发表于2022-07-03 20:48 被阅读0次

什么是python类的多态

python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。

用比喻的方式理解python类的多态

比如,同一个苹果(统一的接口)在孩子的眼里(类实例)可能就是食物(数据处理的方式),在摄影师的眼里可能是个非常不错的素材,在商人的眼里可能就是一个商机了,等等。这就是python的多态!

python多态实例

下面我们将这个比喻抽象成python代码,进一步来理解python的多态!

class WorldOutlook():
    def world_outlook(self):
        print('苹果是一种植物果实')

        
class child(WorldOutlook):
    def world_outlook(self):
        print('这是苹果,一种好吃的东西!')


class photographer(WorldOutlook):
    def world_outlook(self):
        print('这个苹果真是一个不错的摄影素材!')

        
class businessman(WorldOutlook):
    def world_outlook(self):
        print('这苹果卖相不错,应该多进一点货来卖!')
    
    
c = child()
p = photographer()
b = businessman()

c.world_outlook()
p.world_outlook()
b.world_outlook()
————————————————————————————————————
代码输出:
这是苹果,一种好吃的东西!
这个苹果真是一个不错的摄影素材!
这苹果卖相不错,应该多进一点货来卖!

代码解析

如上代码,可见,统一的world_outlook()接口,实现了不同的数据(函数)处理模式,这就是python的多态。这是不是有一种很熟悉的感觉,对的,就是类的继承,也完全符合类由内而外、先到先得的继承机制。

更多关于python类多态的作用、理解方式,以及更多的python教程

可以参考下面的内容:
python类的多态,通俗易懂的多态世界观实例

相关文章

  • 用通俗易懂的多态世界观实例:理解python类的多态

    什么是python类的多态 python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。 用...

  • Java面向对象-多态性

    一、多态性 多态性的体现: 对象的多态性: 向上转型:程序会自动完成父类 父类对象 = 子类实例 向下转型:强...

  • 面向对象程序设计(OOP)

    多态: 多态的本质: 父类引用指向子类的对象 或者 接口类型的引用可以只想实现接口的类的实例 多态是一种运行时期的...

  • 从JVM看Java语言特性(三) 多态

    1. 多态 多态这种特性简而言之就是用父类型别的引用指向其子类的实例,然后通过父类的方法调用实际子类的成员函数. ...

  • 第十二章多态

    就是把同一个父类的子类,用父类实现 多态 同一个引用类型,使用不同的实例而执行不同的操作; 使用多态的思路 -编写...

  • 第四篇学习总结

    第四篇学习总结 一、多态 多态按照我的理解就是一个继承了父类的子类可以看作是它的父类。 1、多态的条件 要有子父类...

  • java中实现多态的原理是什么

    java中实现多态的原理是什么 什么是多态? 多态就是指一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方...

  • 6.3 面向对象的三大特性(多态性)

    定义 (继承的基础上) 通过类实例化生成的对象具有多种形态 1.引用的多态 2.方法的多态

  • Java中的多态详解

    一、多态的概念 多态分为类的多态和方法的多态,类的多态就是一个类型可以有不同的表现形态,什么样的类型才会具备多态呢...

  • 【第 11 天】继承 与 多态

    继承 与 多态 继承 子类继承父类,子类的实例即是子类的类型也是父类的类型。判断是否为某个类型(的实例)可以用函数...

网友评论

      本文标题:用通俗易懂的多态世界观实例:理解python类的多态

      本文链接:https://www.haomeiwen.com/subject/ubrrbrtx.html