Python入门基础篇 No.81 —— super()获得父类定义_多态

Python入门基础篇 No.81 —— super()获得父类定义_多态


前生篇:重写__str__()方法_多重继承_MRO()

后世篇:特殊方法和运算符重载_特殊属性

小白不看都能懂:Python之真功夫系列(全章)


前言

在这里插入图片描述


一、super()获得父类定义

  • 在子类中,如果想要获得父类的方法时,我们可以通过 super()来做。
  • super()代表父类的定义,不是父类对象。

代码演示:

# super()
class A:
    def say(self):
        print('A:', self)
        print('say A')


class B(A):
    def say(self):  # A.say(self) 调用父类的say方法
        super().say()  # 通过super()调用父类的方法
        print('say B')


b = B()
b.say()
------------------------
A: <__main__.B object at 0x000002DA1D5962B0>
say A
say B

在这里插入图片描述

二、多态

  • 多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。在现实生活中,我们有很多例子。比如:同样是调用人的休息方法,张三的休息是睡觉,李四的休息是玩游戏,程序员是敲代码。同样是吃饭的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。
  • 关于多态要注意以下 2 点:

1.多态是方法的多态,属性没有多态。
2.多态的存在有 2 个必要条件:继承、方法重写。

代码演示:

# 多态
class Animal:
    def shout(self):
        print("动物的叫声")


class Dog(Animal):
    def shout(self):
        print("小狗,汪汪汪")


class Cat(Animal):
    def shout(self):
        print("小猫,喵喵喵")


def animal_shout(a):
    if isinstance(a, Animal):
        a.shout()  # 传入的对象不同,shout方法对应的实际行为也不同。


animal_shout(Dog())
animal_shout(Cat())
----------------------------------
小狗,汪汪汪
小猫,喵喵喵

在这里插入图片描述


总结

以上帮各位总结好了,收藏,关注即可查收。

前生篇:重写__str__()方法_多重继承_MRO()

后世篇:特殊方法和运算符重载_特殊属性

小白不看都能懂:Python之真功夫系列(全章)


关注下方公众号,免费拿Python学习资料!!!

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值