Python面向对象-继承

1 继承的概念

继承是面向对象中的一个概念,如果B类继承A类,那么我们称A类为B类的父类(超类),B类为A类的子类。继承使得子类拥有父类的属性和方法,这样就可以减少代码的重复。当子类对父类的方法不满意时,还可以重写该方法,即覆盖掉父类的方法,这样就可以实现同父类不一样的功能。当然,我们还可以在子类中添加新的属性和方法。Python3中我们所写的类都默认继承object类。Python中既支持单继承,也支持多继承。

2 继承的特点

  • 减少了重复的代码
  • 增加了类的耦合性
  • 使代码更加规范,合理

3 继承的使用

class Person(object):

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

    def work(self):
        print("%s is working" % self.name)

class Teacher(Person): # 定义一个Teacher类继承Person

    def __init__(self,name,age,subject):
        super().__init__(name,age) # 调用父类的 __init__方法
        self.subject = subject

    def teaching(self):
        print("%s teach %s" % (self.name,self.subject))

    def work(self):# 重写父类的方法
        print("%s is teaching" % self.name)

t1 = Teacher("jack",28,"math")
t1.teaching()

4 多继承

在Python2中,经典类采用的是深度优先查找法, 新式类采用的是广度优先。而Python3中多继承采用的是C3算法。这个可以自己百度一下。如果我们想知道继承的顺序,可以通过__mro__方法来查看继承的顺序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值