编写类时,并非总是要从空白开始。如果要编写的类时另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法
原有的类称为父类,而新类被称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
继承语法格式:
(资料图片)
class 子类名(父类名):
1.子类的__init__方法创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。为此,子类的__init__方法在初始化子类属性时,需要先将父类的所有属性赋值
子类中给父类属性赋值的语法格式:
super().__init__(实参变量1,实参变量2,,,,,实参变量n)
比如动物猫Cat这个子类,继承动物Animal这个父类,编写程序如下所示:
注意:
1.创建子类时,父类必须包含在当前文件中,且位于子类前面,可以通过import导入到当前文件。
2.super是一个特殊的函数,帮助Python将父类和子类关联起来。这行代码让Python调用Cat的父类的__init__方法,让Cat类的实例cat包含父类的所有属性。
我们通过子类将name传给父类,然后通过调用父类的eat方法,实现了子类实例对父类方法的调用,验证了此时子类继承了父类的所有属性和方法
2.给子类定义属性和方法子类继承父类后,可添加区分子类和父类的属性和方法。
比如我们给Cat类添加一个猫特有的属性捉老鼠的数量num,给Animal类添加一个动物共有的属性年龄age,编写程序如下所示:
对于Cat类的特殊化程度没有任何限制。可以根据所需的准确程度添加任意数量的属性和方法。如果一个属性或者方法是任何动物都有的,而不是动物猫特有的,我们就往动物Animal类中添加,是动物猫特有的我们就往猫Cat类中添加。这样动物Animal类有动物的通用属性和方法,猫Cat类有特有的属性和方法,我们只需根据需要调用即可
注意:
子类可以调用父类的属性和方法,但是父类不可调用子类的属性和方法
会提示父类没有子类的方法等错误。
3.重写父类的方法对于父类的方法,只要它不符合子类的方法逻辑,都可对其进行重写。为此,可在子类定义一个这样的方法,即它与要重写的父类方法同名。这样Python在用子类调用这个方法的时候,就不会去调用父类的同名方法,而是去调用子类的同名方法。
编写程序如下所示:
我们看到我们在子类中重新编写了__str__方法,当子类调用该方法时,是调用子类中的该方法,而不是父类中的该方法。
[责任编辑:linlin]
标签:
看点:【python基础】类-继承
烟台高新区2家企业入选山东省“一企一技术”研发中心 世界时快讯
环球快看点丨金融数智化由繁至简,华为云数智算融合为良方
Leakster声称vivoX100Pro+将配备200MP长焦相机 每日热点
同在屋檐下江浩最后怎么样了_同在屋檐下江浩最后如何 当前资讯
邪王独宠盛世医妃很倾城 邪王独宠王牌悍妃
全球要闻:拉屎有血是痔疮吗
除了价格内卷,618营销还能怎么玩?
世界最资讯丨女足在主帅水庆霞的带领下集训备战
每日讯息!月经第十天会怀孕吗可以吃药避孕吗_月经第十天会怀孕吗
全球速看:一个小芒果的热量是多少_芒果的热量是多少
全球百事通!西安地税局网站 西安市地税稽查局