python 多态和抽象基类的混合学习

本文介绍了Python面向对象编程中的多态概念,强调了多态是方法的多态,强调了继承和方法重写对于多态存在的必要性。同时,讨论了多态动态绑定的特点,即向不同对象发送同一消息时,不同对象会根据自身特性产生不同响应。此外,还探讨了抽象基类的应用,它是具有抽象方法但不能被实例化的基类,强制子类必须实现这些方法。
摘要由CSDN通过智能技术生成

1.多态
python面向对象三大特征:封装、继承和多态。
多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为; 在现实生活中, 我们有很多例子;
比如: 同样是调用人的休息方法, 张三的休息是睡觉, 李四的休息是玩游戏, 王五的休息是逛街;
同样是吃饭的方法, 中国人用筷子吃饭, 英国人用刀叉吃饭, 印度人用手吃饭;

在我们python的面向对象里就是不同的对象在接收相同方法或者函数时会产生不同的行为,
也就是说,每个对象可以用自己的方式去响应共同的函数,不同的方式实现不同的结果。

关于多态 要注意以下两点
1.多态是方法的多态,属性没有多态
2.多态的存在有两个2个必要条件:继承,方法重写

//#  多态
# 多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为; 在现实生活中, 我们有很多例子;
# 比如: 同样是调用人的休息方法, 张三的休息是睡觉, 李四的休息是玩游戏, 王五的休息是逛街;
# 同样是吃饭的方法, 中国人用筷子吃饭, 英国人用刀叉吃饭, 印度人用手吃饭;
#
# 在我们python的面向对象里就是不同的对象在接收相同方法或者函数时会产生不同的行为,
# 也就是说,每个对象可以用自己的方式去响应共同的函数,不同的方式实现不同的结果。
#
# 关于多态 要注意以下两点
# 1.多态是方法的多态,属性没有多态
# 2.多态的存在有两个2个必要条件:继承,方法重写

class Animals:
    def shout(self):
        print('Animals叫了一声,我是父类')

class Dog(Animals):
    def shout(self):  #只有继承和重写父类方法,才能有多态,不然都是一样的,不存在多态
        print('小狗汪汪汪')
class Pig(Animals):
    def shout(self):
        print('小猪昂昂昂')

D=Dog()
D.shout()
S=Pig()
S.shout()   #多态:一个方法名调用,根据对象的不同,调用不同的方法
            # 他们方法名虽然一样,但是内容不一样且对象不一样,故每个对象调用的同名方法都是不一样的

print('-------------------------------------')
# python3
# 抽象基类
# abc.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值