首页 / 知识
python允许继承吗
2023-11-12 13:09:00
继承是面向对象的三大特征之一,也是实现代码复用的重要手段。继承经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类。
例如,有一个Shape类,该类的draw()方法可以在屏幕上画出指定的形状,现在需要创建一个Rectangle类,要求此类不但可以在屏幕上画出指定的形状,还可以计算出所画形状的面积。要创建这样的Rectangle类,除了将draw()方法直接复制到新类中,并添加计算面积的方法,其实还有更简单的方法,即让Rectangle类继承Shape类,这样当Rectangle类对象调用draw()方法时,Python解释器会自动去Shape类中调用该方法,如此,我们只需在Rectangle类中添加计算面积的方法即可。
Python中,实现继承的类称为子类,被继承的类称为父类(也可称为基类、超类)。子类继承父类的语法是:在定义子类时,将多个父类放在子类之后的圆括号里。语法格式如下:
class类名(父类1,父类2,...):
#类定义部分
注意,Python的继承是多继承机制,即一个子类可以同时拥有多个直接父类。
从上面的语法格式来看,定义子类的语法非常简单,只需在原来的类定义后增加圆括号,并在圆括号中添加多个父类,即可表明该子类继承了这些父类。如果在定义一个Python类时,并未显式指定这个类的直接父类,则这个类默认继承object类。
object类是所有类的父类,要么是直接父类,要么是间接父类。
父类和子类的关系,就好像水果和苹果的关系,苹果是一种特殊的水果,苹果是水果的子类,水果是苹果的父类,因此可以说,苹果继承了水果。不仅如此,由于子类是一种特殊的父类,因此父类包含的范围总比子类包含的范围要大,所以可以认为父类是大类,而子类是小类。
从实际意义上看,子类是对父类的扩展,子类是一种特殊的父类。从这个意义上看,使用继承来描述子类和父类的关系是错误的,用扩展更恰当。因此,这样的说法更加准确:苹果扩展了水果这个类。
下面程序示范了子类继承父类的特点。下面是Fruit类的代码:
classFruit:
definfo(self):
print("我是一个水果!重%g克"%self.weight)
classFood:
deftaste(self):
print("不同食物的口感不同")
#定义Apple类,继承了Fruit和Food类
classApple(Fruit,Food):
pass
#创建Apple对象
a=Apple()
a.weight=5.6
#调用Apple对象的info()方法
a.info()
#调用Apple对象的taste()方法
a.taste()
运行结果为
我是一个水果!重5.6克
不同食物的口感不同
上面程序中,定义了两个父类:Fruit类和Food类,接下来定义了一个Apple类,该类本身是空类,但其继承自Food类和Fruit类。因此,在主程序部分创建了Apple对象之后,可以访问Apple对象的info()和taste()方法,这表明Apple对象也具有了info()和taste()方法,这就是继承的作用,即子类扩展(继承)了父类,将可以继承得到父类定义的方法,这样子类就可复用父类的方法了。
以上内容为大家介绍了Python培训之允许继承吗,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python有map方法吗
python有map方法吗,培训,位置,数据,函数,列表,序列,参数,元素,方法,使用方法,python中的map:map()会根据提供的函数对指定序列做映射。第一个python如何注释代码行
python如何注释代码行,代码,培训,位置,注释,信息,内容,中文,程序,声明,语法,python中使用井号(‘#’)作为单行注释的符号,语法格式为:#注释内容python如何定义函数
python如何定义函数,培训,概念,代码,环境,函数,定义,语句,括号,结果,冒号,函数的概念:函数是组织好的、具有一定功能的代码片段。在Python中,定python怎么注释多行代码
python怎么注释多行代码,培训,代码,注释,内容,开头,结尾,全部,语法,函数,模块,python多行注释确保对模块,函数,方法和行内注释使用正确的风格python 培训之 object是什么类型
python 培训之 object是什么类型,培训,类型,实例,顶端,对象,关系,链条,父子,数据类型,属性,在Python的世界中,object是父子关系的顶端,所有的数pythonreturn如何定义
pythonreturn如何定义,培训,函数,定义,字符串,数值,使用说明,语句,对象,以上,存在,在定义函数时,对于return的使用return语句是python语言中函python如何定义接受参数的函数
python如何定义接受参数的函数,信息,培训,位置,参数,函数,列子,效果,定义,更多,内容,python中的函数可以有参数,也可以无参数,参数可以分为默认python写代码怎么跳下一行
python写代码怎么跳下一行,培训,代码,括号,末尾,空格,字符串,也就是,对象,以上,两个,python里一行写不下,拆成多行,有两种办法:\和()两种方法在python可以定义变量先不赋值吗
python可以定义变量先不赋值吗,培训,数字,变量,合法,代码,声明,类型,赋值,整数,字符串,Python中常见的数据类型有字符串,整形,列表,元组,字典等。pythonjava语法区别有哪些
pythonjava语法区别有哪些,名称,培训,数字,数据,能存,标准,数据类型,语法,字符串,分号,1、变量java中定义变量,inta=0;而python中为a=0;由此可python代码怎么换行
python代码怎么换行,代码,培训,方法,示例,字符串,斜杠,行书,括号,有用,下面,使用以下方法可以使Python的代码换行:1.用反斜杠链接多行代码,示例python代码中优化提速的小技巧分享
python代码中优化提速的小技巧分享,代码,培训,