当前位置: 首页 > article >正文

27.多态

完成某个行为时,使用不同的对象会得到不同的状态。

函数、方法形参声明接收父类对象,实际传入父类的子类对象进行工作。

以父类做定义声明,以子类做实际工作。

class Animal:
    def call(self):
        pass


class Dog(Animal):
    def call(self):
        print("汪汪叫...")


class Sheep(Animal):
    def call(self):
        print("咩咩叫...")


def make_noise(animal: Animal) -> str:
    animal.call()
    return "end"


sheep = Sheep()
# 咩咩叫...
make_noise(sheep)
dog = Dog()
# 汪汪叫...
make_noise(dog)

多态应用到抽象类上,父类方法中写了pass,该方法就是抽象方法。含有抽象方法的类就是抽象类

# 抽象类
class AC:
    def hot(self):
        # 抽象方法
        pass

    def cold(self):
        pass

    def wind(self):
        pass


class Greece(AC):
    def hot(self):
        print("格力热风")

    def cold(self):
        print("格力冷风")

    def wind(self):
        print("格力扫风")


class Aux(AC):
    def hot(self):
        print("奥克斯热风")

    def cold(self):
        print("奥克斯冷风")

    def wind(self):
        print("奥克斯扫风")


def make_cool(ac: AC):
    ac.cold()


ac = Greece()
# 格力冷风
make_cool(ac)

http://www.kler.cn/a/442707.html

相关文章:

  • day07_Spark SQL
  • 【I/O编程】UNIX文件基础
  • Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
  • Require:利用MySQL binlog实现闪回操作
  • Elasticsearch ES|QL 地理空间索引加入纽约犯罪地图
  • 理解AJAX与Axios:异步编程的世界
  • DuckDB: 两种方法实现动态分组查询
  • 解决git push出现的报错:Permission denied (publickey)
  • 本地项目显示正常,打包部署后ElementUI重点饿图标全部显示异常为小方框
  • 天线覆盖方案简图
  • 云连POS-ERP管理系统ZksrService存在SQL注入漏洞
  • bug之浮点数精度求和计算
  • IntelliJ IDEA中的语言级别版本与目标字节码版本配置
  • c++数据结构算法复习基础--13--基数算法
  • STM32卡死、跑飞、进入HardFault_Handler如何精准的确定问题
  • 【go每日一题】 实现生产者消费者模式
  • 电源的分类
  • windows 使用python共享网络给另外一个网卡
  • 谁说C比C++快?
  • 矩阵的基本知识
  • 【ETCD】ETCD 的一致性读(Linearizable Read)流程解析
  • nexus5x安卓root
  • 队列的原理及应用
  • Git安装详解(写吐了,看完不后悔)
  • 9_less教程 --[CSS预处理]
  • 代码生成器