继承:
当定义的多个类都同属于某一个大类,此时分别定义的话就会产生很多冗余的代码,代码的可读性就会变低。在这个时候就可以用到类的继承,将相同的代码提取出来,创建一个父类,然后再去继承这个父类,就会拥有父类的属性和方法
定义类时,在类名的()中传入要继承的类即可
class Student(Person):
pass
特点:
1.如果类中不定义__init__方法,默认会调用父类 super class
2.如果类继承了父类,也需要去定义自己的__init__方法,就需要在当前类的__init__中调用父类的init()
3.如何调用父类的__init__:
super().__init__(参数)
super(类名,对象[一般为self]).__init__(参数)(此方法比上一个方法多一个判断,判断对象是否是对应的类)
4.如果父类有eat(),子类也定义一个eat方法,默认搜索的原则:先找当前类,再去找父类。
s.eat()
override: 重写(覆盖)操作
父类提供的方法不能满足子类的需求,就需要在子类中定义一个同名的方法
5.子类的方法中也可以调用父类的方法:
super().方法名(参数)
class Orenge(Fruite):
pass
调用父类init
super().__init__(参数)
super(父类名, self).__init__()
父类名.__init__(self)
多态
当我们需要传入更多的子类时,我们只需要继承父类就可以了,而父类的方法既可以直接用不重写,也可以重写一个特有的。这就是多态的意思。