python面向对象:多态的编程案例【1】

多态发生的两个前提:

1、继承:多态一定是发生在子类和父类之间

2、重写:子类重写了父类的方法

 编程案例:

"""
多态发生的两个前提:
  1、继承:多态一定是发生在子类和父类之间
  2、重写:子类重写了父类的方法
"""
# object 是面向对象中所有类的基类(父类)

class Dog(object):
    def __init__(self,name):
        self.name = name
    def game(self):
        print(f'普通的狗狗玩耍.....{self.name}')

class XiaoTianDog(Dog):   # 继承Dog类
    def game(self):  # 方法重写
        print(f'哮天犬在天上玩耍 {self.name}')

# 补充知识点:变量名的命名需要符合规则:由数字,字母,下划线_组成,不能以数字开头
class Person:
    def __init__(self,pname):
        self.pname = pname

    # 定义人类和狗狗玩耍的方法
    def game_with_dog(self,dog):  # 传递dog对象,通过dog对象调用game方法
        dog.game()

# 主程序:
wangcai = XiaoTianDog('旺财')
xiaohei = XiaoTianDog('小黑')
kele = XiaoTianDog('可乐')
ming = Person('明明')
ming.game_with_dog(wangcai)
ming.game_with_dog(xiaohei)  # 多态:调用同一个方法,输出内容不一样
ming.game_with_dog(kele)

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值