python继承类中如何重写?

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、重写的类别

1)重写和父类的方法名称一样。但是在子类里面,重新实现。

2)保留父类的做法,在它的基础上再扩展其它的内容。(扩展方式:super())

super()的2种表达:

super().方法(参数列表)

super(子类名,self).方法(参数列表)

2、重写实例

Animal 的子类Cat继承了父类的属性和方法,但是我们猫类 Cat 有自己的叫声 '喵喵' ,这时我们可以对父类的 Call() 方法进行重构。如下:

classCat(Animal):
def__init__(self,name,age,sex):
super(Cat,self).__init__(name,age)
self.sex=sex

defcall(self):
print(self.name,'会“喵喵”叫')

if__name__=='__main__':
c=Cat('喵喵',2,'男')
c.call()#输出:喵喵会“喵喵”叫

类方法的调用顺序,当我们在子类中重构父类的方法后,Cat子类的实例先会在自己的类 Cat 中查找该方法,当找不到该方法时才会去父类 Animal 中查找对应的方法。

为了方法的快速调用,我们会从父类那里继承方法,放在子类的使用上。但这样也会产生一种问题,子类全部显示的是父类的类别,而没有自身特性进行区分。这时候方法的重写就很有必要了。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。