请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 457|回复: 0

Python中的多态

[复制链接]

57

主题

70

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2022-9-26 00:57:27 | 显示全部楼层 |阅读模式

什么是多态:

多态指的是一类事物有多种形态。

定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果:
① 多态依赖继承
② 子类方法必须要重写父类方法

好处:调用灵活,有了多态,更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化!

多态的实现步骤:
定义父类,并提供公共方法
定义子类,并重写父类方法
传递子类对象给调用者,可以看到不同子类执行效果不同。
案例: 演示多态

# 1 定义父类 Person
class Person(object):
    # 1.1 初始化
    def __init__(self, name):
        self.name = name

    # 1.2 正在做某事 doSomething
    def doSomthing(self):
        print("XX 正在做某事 ... ...")

# 2 定义 子类: 理发师 Barber
class Barber(Person):
    # 2.1 覆写 doSomething
    def doSomthing(self):
        print(f'{self.name} 立刻开始理发 ... ...')

# 3 定义 子类: 女演员 Actress
class Actress(Person):
    # 3.1 覆写 doSomething
    def doSomthing(self):
        print(f'{self.name} 立刻停止表演 ... ...')

# 4 定义 子类: 医生 Doctor
class Doctor(Person):
    # 3.1 覆写 doSomething
    def doSomthing(self):
        print(f'{self.name} 立刻给患者开膛破肚, 进行手术 ... ...')

# 5 定义方法 cut(person)
def cut(person):
    person.doSomthing()

# 6 在main方法中
if __name__ == '__main__':
    # 6.1 实例化 子类对象
    p1 = Barber("华仔")
    p2 = Actress("如花")
    p3 = Doctor("华佗")

    # 6.2 调用 cut 方法 传入不同的子类对象
    cut(p1)
    cut(p2)
    cut(p3)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2023-11-29 00:37 , Processed in 0.043255 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表