python面向对象之继承

python面向对象之继承


  1. 继承
    龙生龙,凤生凤,老鼠的儿子会打洞
  • 面向对象三大特性: 封装 继承 多态
  • 继承:某个类直接具备另一个类的能力(属性和方法)
    格式:
    class 子类名(父类名):
class Animal:
    def eat(self):
        print("-----吃-----")


class Dog(Animal):
    pass


wang_cai = Dog()
wang_cai.eat()
  1. 多层继承
  • 继承关系可以在多层间传递
class Animal:
    def eat(self):
        print("-----吃-----")


class Dog(Animal):
    def bark(self):
        print("-----汪汪叫------")


class XTQ(Dog):
    """哮天犬 类"""
    pass



xtq = XTQ()
xtq.eat()
xtq.bark()

3.多继承
所谓多继承,即子类有多个父类,并且具有它们的特征

class Dog:
    """狗"""
    def bark(self):
        print("汪汪叫")


class God:
    """神仙"""
    def fly(self):
        print("飞一会儿")


class XTQ(Dog, God):  # 多继承使用逗号隔开
    pass

xiaotq = XTQ()
xiaotq.bark()  
xiaotq.fly()

注意点
想一想:
如果在上面的多继承例子中,如果父类A和父类B中,有一个同名的方法,那么通过子类去调用的时候,调用哪个?

class Dog:
    """狗"""
    def eat(self):
        print("吃便便")

class God:
    """神仙"""
    def eat(self):
        print("吃蟠桃")

class XTQ(Dog, God):  
    # 在多继承中,调用指定父类的方法
    def eat(self):  
        God.eat(self)  # 调用God的eat方法

xiaotq = XTQ()
print(XTQ.__mro__)  # 多继承中使用 mro变量来查看继承查询顺序

xiaotq.eat()  # 吃蟠桃
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值