Python学习笔记--继承

继承是面向对象程序设计的重要特征,也是实现代码复用的重要手段
比如动物世界,父类是动物,哺乳动物是子类,老虎是哺乳动物的子类
python支持多重继承,一个子类可以直接继承多个父类(不推荐,结构会复杂),但JAVA不支持
多个父类同名函数,根据哪个父类在前,在前的父类覆盖在后的父类
如果没有指定,默认父类是object,object是所以类的父类
格式 class 子类类名(父类)
定义子类时在结构函数中必须调用父类的结构函数
格式为 父类名.init(self,参数列表)
子类可重新定义父类中的方法,但会覆盖
mro()可查看class的继承层级结构,后部为父类
super().父类内部函数名 得到/直接调用父类内部定义的方法/对象,而不是说新建一个对象

子类可以重写从父类继承的方法


#Student-person-object
class Person:
    def __init__(self,name,age):
        self.name=name
        self.__age=age      #私有属性只有父类才能直接用

    def say_age(self):
        print('aaa')


class Student(Person):
    def __init__(self,name,age,score):  #
        Person.__init__(self,name,age)  #必须显式的调用父类初始化方法,不然解释器不回去调用
        self.score=score

    def say_age(self):
        print('已被重写')


s=Student('123',18,20)
s.say_age()

print(s._Person__age)       #子类想用必须用调用私有属性方法调用


class A:
    def aa(self):
        print('aa')
class B:
    def aa(self):
        print('bb')
    def say(self):
        print('测试super')
class C(B,A):
    def say(self):
        print('b')
        super().say()
c = C()
c.aa()
print(C.mro())
C().say()
已被重写
18
bb
[<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
b
测试super
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值