美文网首页
Python 面向对象 - 05 多态

Python 面向对象 - 05 多态

作者: flowerflower | 来源:发表于2019-03-03 17:28 被阅读0次
👀👀

一、概念

  • 多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果
    • 多态 可以 增加代码的灵活度
    • 继承重写父类方法 为前提
    • 是调用方法的技巧,不会影响到类的内部设计

例子:

需求

  1. Animal 类中封装方法 play
    • 一群动物在玩
  2. 定义 Dog 继承自 Animal,并且重写 play 方法
    • 小灰狗不想跟其他动物玩
  3. 定义 Person 类,并且封装一个 和狗玩 的方法
    • 在方法内部,直接让 狗对象 调用 play 方法
class Animal(object):
    def __init__(self,name):
        self.name = name

    def play(self):
        print("一群动物在玩 %s" %(self.name))

class Dog(Animal):

    def play(self):
        print("%s不想跟其他动物玩" %(self.name))

class Person(object):

    def __init__(self,name):
        self.name = name

    def game_with_dog(self,dog):
        print("%s和%s在愉快的晚上" %(self.name,dog.name))
        # 让狗玩
        dog.play()
        
        
dog = Dog("小灰狗")
zhangsan = Person("张三")
zhangsan.game_with_dog(dog)

打印结果


图片.png

案例小结

  • Person 类中只需要让 狗对象 调用 play 方法,而不关心具体是 什么狗
    • play 方法是在 Animal 父类中定义的
  • 在程序执行时,传入不同的 狗对象 实参,就会产生不同的执行效果

相关文章

  • Python 面向对象 - 05 多态

    一、概念 多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果多态 可以 增加代码的灵活度以 继承 和...

  • Python面向对象-多态

    面向对象的三大特性 封装 继承 多态 python学习过程中,封装继承将随处可见,但却很少遇见多态,那么pytho...

  • 类面对对象、封装 继承 多态

    Python——类、面向对象,封装 继承 多态 面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一...

  • python面向对象特性之封装

    面向对象——封装 一、概述 Python面向对象的三大特性:封装、继承和多态。 封装:在类中对数据的赋值、内部调用...

  • Python面向对象封装

    面向对象——封装 一、概述 Python面向对象的三大特性:封装、继承和多态。 封装:在类中对数据的赋值、内部调用...

  • Python精简入门学习(十六)

    Python精简入门学习之面向对象三大特性 -oop三大特性 -封装 -继承 -多态

  • day3-python3类

    今天了解了python3中的面向对象编程 包括: 属性和封装 继承和多态 获取对象信息 练习代码链接:python...

  • python-面向对象——多态

    多态 python是一种运行时语言,python即支持面向过程,也支持面向对象 类属性和实例属性 实例属性:和具体...

  • 类面向对象,封装 继承 多态

    Python——类、面向对象,封装 继承 多态 https://www.jianshu.com/u/d959ac3...

  • Python 面向对象5:多态

    一、多态 1.1、面向对象三大特性封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中定义类的准则继承...

网友评论

      本文标题:Python 面向对象 - 05 多态

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