面向对象(二) 类与类之间的关系之继承

3.继承

继承也是面向对象的三大特性之一,可以减少代码量,让类与类之间产生关联,增强耦合性,使代码更加规范化,清晰化

3.1 单继承

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

class Person(Animal):
    pass

p1 = Person("Shawn",18)
print(p1.name)
print(p1.age)

1) 既要执行子类方法又要执行父类方法

class Animal():
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def work(self,action):
        print("动物都会%s"%action)
class Person(Animal):
    def __init__(self,name):
        self.name = name
        Animal.work(self,"吃饭")  #第一种方式:需要加上self
        super().work("睡觉")      #第二种方式:不需要self
        super(Person,self).work("喝水")      #全写方式
        self.work("思考")
    def work(self,action):
        print("人类都会%s"%action)
运行结果:
动物都会吃饭
动物都会睡觉
动物都会喝水
人类都会思考

2) 对象既要执行父类的__init__ 又要执行子类的__init__方法

class Animal():
    def __init__(self,name,age):
        self.name = name
        self.age = age
class Person(Animal):
    def __init__(self,name,age,mind):
        super().__init__(name,age)
        self.mind = mind

p1 = Person("Shawn",19,"有思想")

3.2 多继承

猜你喜欢

转载自www.cnblogs.com/duoduoyichen/p/10381057.html