千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:上海千锋IT培训  >  技术干货  >  python允许继承吗

python允许继承吗

来源:千锋教育
发布人:xqq
时间: 2023-11-15 10:34:25

继承是面向对象的三大特征之一,也是实现代码复用的重要手段。继承经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类。

例如,有一个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相关知识,请关注IT培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python如何求一个数的平方

2023-11-15

python如何拼接字符串

2023-11-15

pythonweb开发框架有哪些

2023-11-15

最新文章NEW

python判断两个字典是否相同

2023-11-15

python判断键在不在字典里

2023-11-15

python如何判断python的数组是否为空

2023-11-15

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>