python-类-05-继承

01 单继承与多继承

单继承:子类继承于一个父类
多继承:子类继承于多个类

02 什么时候使用继承

假如需要定义几个类,而类与类之间有一些公共的属性和方法,
这时就可以把相同的属性和方法作为基类的成员,而特殊的方法及属性则在子类中定义。
这样子类只需要继承基类(父类),子类就可以访问到基类(父类)的属性和方法了,它提高了代码的可扩展性和重用行。

注: 父类的构造方法不会被自动调用,需要在子类中主动调用
class Animal(object):  # python3中所有类都可以继承于object基类
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def call(self):
        print(self.name, '会叫')

######
# 定义一个Cat 猫类继承于Animal,猫类比动物类多一个sex属性
######
class Cat(Animal):
    def __init__(self, name, age, sex):  # 重写父类的构造方法
        # 两种写法, python3.0可以用super().xxx代替super(class, self).xxx 作业可以注释区分一下
        # super(Cat, self).__init__(name, age)  # 从Animal类引入属性
        super().__init__(name, age)
        self.sex = sex

03 方法调用顺序与方法重写

父类方法重写:在子类中定义和父类方法名称一样参数列表一样的方法
方法调用顺序:先在子类中找是否有对应的调用方法,如果没有找到才会在父类中查找
class Dog(Animal):
    def __init__(self, name, age, sex):
        super(Dog, self).__init__(name, age)
        self.sex = sex
    def call(self):
        print(self.name, '会“汪汪”叫')
        
class Pig(Animal):
    def __int__(self, name, age):
        super.__init__(name, age)
    def call(self):
        print(self.name, '呼噜呼噜')

if __name__ == '__main__':
    c = Cat('喵喵', 2, '男')  # Cat继承了父类Animal的属性
    c.call()  # 输出 喵喵 会叫 ,Cat继承了父类Animal的方法
    d = Dog('狗狗', 2, '男')
    d.call()
    b = Pig('猪猪', 12)
    b.call()
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值