Python 面向对象5:多态

简介: Python 面向对象5:多态

一、多态



  • 1.1、面向对象三大特性
  • 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中
    定义类的准则
  • 继承 实现代码的重用,相同的代码不需要重复的编写
  • 设计类的技巧
  • 子类针对自己特有的需求,编写特定的代码
  • 多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果
  • 多态 可以 增加代码的灵活度
  • 以 继承 和 重写父类方法 为前提
  • 是调用方法的技巧,不会影响到类的内部设计


image.png


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



  • 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)


目录
相关文章
|
1月前
|
Java 程序员 C++
Python 面向对象详解!
本文详细介绍了Python中的面向对象编程(OOP),包括类、对象、继承、封装、多态和抽象等核心概念。通过具体示例,解释了如何使用类定义对象的属性和方法,以及如何通过继承实现代码重用。文章还探讨了封装和多态的重要性,并介绍了私有属性和抽象类的使用方法。最后,总结了OOP的四大支柱:封装、抽象、继承和多态,强调了这些概念在Python编程中的应用。适合Java程序员扩展Python编程知识。
67 2
|
26天前
|
Python
Python面向对象(2)
【10月更文挑战第14天】
Python面向对象(2)
|
3月前
|
Python
你真的会面向对象吗!解密Python“魔术方法”
你真的会面向对象吗!解密Python“魔术方法”
38 0
|
27天前
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
Python面向对象
|
5月前
|
Python
Python进阶第一篇(Python的面向对象)
Python进阶第一篇(Python的面向对象)
|
6月前
|
存储 算法 安全
Python编程实验六:面向对象应用
Python编程实验六:面向对象应用
106 1
|
2月前
|
前端开发 Python
Python编程的面向对象有哪些(二)
Python编程的面向对象(二)—类的多态
|
2月前
|
IDE Java 开发工具
Python类与面向对象
Python类与面向对象
|
1月前
|
Python
Python编程-关于面向对象的一些
Python编程-关于面向对象的一些
|
3月前
|
安全 算法 Go
Python面向对象的三大特性
python面向对象编程(OOP)的三大特性是封装、继承和多态。这些特性共同构成了OOP的基础,使得软件设计更加灵活、可维护和可扩展。
32 3