Python基础入门篇【33】--面向对象:类的继承与多态

前言
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

python类的继承与多态

继承

什么是继承?

通过继承基类来得到基类的功能

我们把被继承的类称作父类或基类,继承者被称作子类

继承的好处:代码可以重用

父类与子类的关系

  • 子类拥有父类的所有属性和方法
  • 父类不具备子类独有的属性和方法

定义子类时,将父类传入子类参数内

子类实例化对象可以调用自己与父类的属性与方法

父类实例化对象无法调用子类的属性与方法

例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GojWHjOp-1659020849501)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220728222114756.png)]

多态

什么是多态?

同一个功能的多状态化。

比如一个父亲有多个儿子,虽然每个儿子都继承了父亲的基因,但每个儿子又各不相同,比如性格,说话的语气等。

多态的用法

子类中重写父类的方法:直接在子类重写一个相同名称的方法,子类的实例化对象在调用该方法时会调用子类的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-26FLeaLE-1659020849503)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220728225337309.png)]

super函数

python子类继承父类的方法而使用的关键字,当子类继承父类后,就可以使用父类的方法

设想:子类和父类都有自己的构造函数,那么在实例化子类对象时会调用子类的构造函数,但又想使用父类的构造函数该怎么做呢?

举个例子:

要从下面两个类中提出父类,该如何提取呢?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qskhSyRq-1659020849504)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220728223708297.png)]

参考代码:

class Animals(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

        
class Person(Animals):
    def __init__(self, sex, name, age):
        super().__init__(name, age)
        self.sex = sex


class Bird(Animals):
    def __init__(self, kind, name, age):
        super().__init__(name, age)
        self.kind = kind


p = Person(sex='boy')
p.name = 'xiaoming'
print(p.name)

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gO6yYVYU-1659020849505)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220728224037159.png)]

注意,在python2.0中,super()函数的括弧内需要传入两个参数:super(child,self)第一个参数是当前类,第二个参数是self,在python3.0时代这两个参数可以省略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值