HSP_12章 Python面向对象编程oop_多态

P128 多态问题的引出

  • 先看一个问题
    在这里插入图片描述

# 说明: 先试用传统的方式完成
class Food:
    name = None

    def __init__(self,name):
        self.name = name

class Fish(Food):
    # 特有的属性和方法
    pass

class Bone(Food):
    # 特有的属性和方法
    pass


class Animal:
    name = None

    def __init__(self,name):
        self.name = name

class Dog(Animal):
    # 特有的属性和方法
    pass

class Cat(Animal):
    # 特有的属性和方法
    pass


class Master:
    name = None

    def __init__(self, name):
        self.name = name

    def feed__cat(self,cat :Cat,fish :Fish):
        print(f"主人{
     
     self.name},给动物:{
     
     cat.name},喂的食物是{
     
     fish.name}")

    def feed__dog(self,dog :Dog,bone :Bone):
        print(f"主人{
     
     self.name},给动物:{
     
     dog.name},喂的食物是{
     
     bone.name}")

# 测试
master = Master("zoran")
cat = Cat("小花猫")
fish = Fish("黄花鱼")
dog = Dog("大黄狗")
bone = Bone("大棒骨")

master.feed__cat(cat,fish)
master.feed__dog(dog,bone)

  • 传统的方法带来的问题是什么? 如何解决
1)问题是:代码的复用性不高,而且不利于代码维护和功能扩展
2)解决方案:引出我们要讲解的多态

P129 多态细节和使用

1. 多态介绍&特别说明

在这里插入图片描述

#举例说明:一个父类,具有多个子类,不同的子类对象调用相同的方法,执行的时候产生不同的状态,就是多态
class Animal:
    def cry(self):
        pass

class 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pigerr杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值