01 单继承与多继承
单继承:子类继承于一个父类
多继承:子类继承于多个类
02 什么时候使用继承
假如需要定义几个类,而类与类之间有一些公共的属性和方法,
这时就可以把相同的属性和方法作为基类的成员,而特殊的方法及属性则在子类中定义。
这样子类只需要继承基类(父类),子类就可以访问到基类(父类)的属性和方法了,它提高了代码的可扩展性和重用行。
注: 父类的构造方法不会被自动调用,需要在子类中主动调用
class Animal(object):
def __init__(self, name, age):
self.name = name
self.age = age
def call(self):
print(self.name, '会叫')
class Cat(Animal):
def __init__(self, name, age, sex):
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, '男')
c.call()
d = Dog('狗狗', 2, '男')
d.call()
b = Pig('猪猪', 12)
b.call()