当父类的方法重写不能满足子类的需求时,可以对方法进行重写。
重写父类方法有两种情况:
①覆盖父类的方法
②对父类方法进行扩展
覆盖父类的方法使用场景
在开发时,如果父类的实现方法和子类的实现方法完全不同
就可以使用覆盖父类的方式,在子类中重新编写父类方法实现
具体实现方式:
在子类中定义一个和父类同名的方法,并且实现重写之后,在运行时只会调用子类中重写的方法,不会再调用父类中封装的方法。
代码实现:
class animal:
def eat(self):
print("吃饭")
def drink(self):
print("喝水")
def play(self):
print("玩耍")
def sleep(self):
print("睡觉")
def yelp(self):
print("犬吠")
class Dog(animal):
def yelp(self):
print("特殊的犬吠")#和父类中方法名字相同,但是方法不一样,
pipi = Dog("皮皮")
pipi.eat()
pipi.drink()
pipi.play()
pipi.yelp()
pipi.sleep
#输出
吃饭
喝水
玩耍
特殊的犬吠
睡觉
所以覆盖父类的方法来实现重写,就是在子类中定义一个和父类同名的方法,只不过方法作用不一样。