python基础之多态

作者:qianqqqq_lu 时间:2022-04-05 10:06:06 

多态

多态:顾名思义九四多种形态\状态,就是同一种行为对不同的子类[对象]有不同的行为表现
要想实现多态 必须有两个前提需要遵守:
1.必须存在一种继承关系,必须发生在父类和子类之间
2.重写:子类重写父类的方法
多态的优点:
多态可以增加程序的灵活性
增加程序的扩展性
只要具备某种方法,无论继承者是谁,定义者是谁,都可以去调用

python基础之多态

python基础之多态

案例演示


class Animal:
    def say_who(self):
        '''
        父类【基类】
        :return:
        '''
        print('你是一个动物')
        pass
    pass
class Duck(Animal):
   '''
   继承于animal这个类 鸭子类【子类】派生类
   '''
   def say_who(self):
       '''
       在这里重写父类的方法
       :return:
       '''
       print('我是鸭鸭丫')
   pass
class Dog(Animal):
   def say_who(self):
       print('只是一只汪罢了')
       pass
   pass

duck1=Duck()
duck1.say_who()
dog=Dog()
dog.say_who()

python基础之多态


class Animal:
    def say_who(self):
        '''
        父类【基类】
        :return:
        '''
        print('你是一个动物')
        pass
    pass
class Duck(Animal):
   '''
   继承于animal这个类 鸭子类【子类】派生类
   '''
   def say_who(self):
       '''
       在这里重写父类的方法
       :return:
       '''
       print('我是鸭鸭丫')
   pass
class Dog(Animal):
   def say_who(self):
       print('只是一只汪罢了')
       pass
   pass
# 使用统一的函数去调用
def commonInvoke(obj):
   '''
   同意调用的方法
   :param obj: 对象的实例
   :return:
   '''
   obj.say_who()
# duck1=Duck()
# duck1.say_who()
# dog=Dog()
# dog.say_who()
listObj=[Duck(),Dog()]
for item in listObj:
   '''
   循环调用函数
   '''
   commonInvoke(item)  #通过函数统一调用

python基础之多态


增加新类完全无需修改代码,只需将需要的代码添加上就是了

# 案例演示
class Animal:
    def say_who(self):
        '''
        父类【基类】
        :return:
        '''
        print('你是一个动物')
        pass
    pass
class Duck(Animal):
   '''
   继承于animal这个类 鸭子类【子类】派生类
   '''
   def say_who(self):
       '''
       在这里重写父类的方法
       :return:
       '''
       print('我是鸭鸭丫')
   pass
class Dog(Animal):
   def say_who(self):
       print('只是一只汪罢了')
       pass
   pass
class Bird(Animal):
   def say_who(self):
       print('门前大桥下,停着一只鸟')
# 使用统一的函数去调用
def commonInvoke(obj):
   '''
   同意调用的方法
   :param obj: 对象的实例
   :return:
   '''
   obj.say_who()
# duck1=Duck()
# duck1.say_who()
# dog=Dog()
# dog.say_who()
listObj=[Duck(),Dog(),Bird()]
for item in listObj:
   '''
   循环调用函数
   '''
   commonInvoke(item)  #通过函数统一调用

python基础之多态

来源:https://blog.csdn.net/weixin_44632711/article/details/120696257

标签:python,基础,多态
0
投稿

猜你喜欢

  • 解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题

    2022-10-24 05:34:54
  • ORACLE常见错误代码的分析与解决(三)

    2024-01-25 12:26:01
  • IA学习笔记02:组织体系

    2009-06-12 12:22:00
  • golang 调用c语言动态库方式实现

    2024-05-22 17:51:02
  • python2.7 mayavi 安装图文教程(推荐)

    2022-05-12 05:39:13
  • 对python中大文件的导入与导出方法详解

    2021-02-11 12:32:47
  • Django中日期时间型字段进行年月日时分秒分组统计

    2023-01-05 02:26:09
  • Python pandas中apply函数简介以及用法详解

    2022-05-11 03:44:47
  • 用Python的Django框架来制作一个RSS阅读器

    2023-01-31 19:17:33
  • 用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)

    2021-04-26 22:34:55
  • python编写朴素贝叶斯用于文本分类

    2022-01-29 18:45:51
  • win7系统安装SQLServer2000的详细步骤(图文)

    2024-01-27 02:39:26
  • pandas中DataFrame重置索引的几种方法

    2023-06-10 00:26:45
  • 在Python中使用成员运算符的示例

    2023-12-12 01:36:20
  • python 列表元素左右循环移动 的多种解决方案

    2023-06-15 06:21:45
  • 解决idea打开窗口/tab过多导致隐藏的问题

    2022-12-29 10:45:42
  • 简述Redis和MySQL的区别

    2024-01-25 01:18:34
  • MySQL数据库卸载的完整步骤

    2024-01-13 13:12:52
  • python3 面向对象__类的内置属性与方法的实例代码

    2023-03-24 10:03:19
  • 浅谈django开发者模式中的autoreload是如何实现的

    2022-04-03 17:22:04
  • asp之家 网络编程 m.aspxhome.com