美文网首页Python知识锦集
Python 面向对象5:多态

Python 面向对象5:多态

作者: IIronMan | 来源:发表于2018-11-15 23:26 被阅读1次

一、多态

  • 1.1、面向对象三大特性

    • 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中
      定义类的准则

    • 继承 实现代码的重用,相同的代码不需要重复的编写

      • 设计类的技巧
      • 子类针对自己特有的需求,编写特定的代码
    • 多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果

      • 多态 可以 增加代码的灵活度
      • 以 继承 和 重写父类方法 为前提
      • 是调用方法的技巧,不会影响到类的内部设计


        多态

二、多态的案例(汽车、皮卡、人)

  • 2.1、需求

    • 在 Car 类中封装方法 run

      • 普通汽车只是简单的run
    • 定义Pickup(皮卡) 继承自 Car,并且重写 run 方法

      • Pickup(皮卡) 在跑的时候可以拉货
    • 定义 Person 类,并且封装人开汽车的方法 drive

      • 在方法内部,让汽车 对象 调用 run 方法
    • 案例小结

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

      多态 更容易编写出出通用的代码,做出通用的编程,以适应需求的不断变化!

      class Car(object):
      
          def __init__(self, name):
                self.name = name
      
          def run(self):
                print("%s 简单的在路上跑" % self.name)
      
      class Pickup(Car):
      
          def run(self):
                print("%s 在跑的时候可以进行拉货" % self.name)
      
      class Person(object):
      
          def __init__(self, name):
                self.name = name
      
          def drive(self, car):
                print("%s 开着 %s 去拉货" % (self.name, car.name))
      
                # 让狗玩耍
                car.run()
      
      # 1. 创建一个汽车对象
      # small_car = Car("小汽车")
      pickup = Pickup("皮卡")
      
      # 2. 创建一个Jack对象
      Jack = Person("Jack")
      
      # 3. 让Jack调用drive的方法
      Jack.drive(pickup)

相关文章

  • Python 面向对象5:多态

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

  • 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中面向对象--多态

    多态 程序在运行的过程中,根据传递的参数的不同,执行不同的函数或者操作不同的代码,这种在运行过程中才确定调用的方式...

网友评论

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

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