Python——类的继承
Python——类的继承
- 1.继承的实现
- 2.方法重写
- 3.Python的多继承
1.继承的实现
Python中继承语法格式如下:
class 子类名(父类名):类的属性类的方法
例 7-11 类的继承示例,子类继承父类方法:
#ex0711.py 类的继承示例,子类继承父类方法
class Animal:num = 0def __init__(self):print("父类 Animal")def show(self):print("父类 Animal 成员方法")class Cat(Animal):def __init__(self):print("构建子类 Cat")def run(self):print("子类 Cat 成员方法")cat = Cat()
cat.run() #子类方法
cat.show() #父类方法
运行结果:
例 7-12 类继承的应用
#ex0712.py 类继承的应用
class Employee:def __init__(self,name="",department="computer",age=20):self.setName(name)self.setDepartment(department)self.setAge(age)def setName(self,name):if type(name)!=str:print("姓名必须是字符")returnself.__name=namedef setDepartment(self,department):if department not in ["computer","communication","electric"]:print("专业必须是computer、communication或electric")returnself.__department=departmentdef setAge(self,age):if type(age)!=int or age>=33 or age<20:print("年龄必须是数字,且界于20至33之间")returnself.__age=agedef show(self):print("姓名:{} 专业:{} 年龄:{}".format(self.__name,self.__department,self.__age))class ProjectManager(Employee):def __init__(self,name='',department="computer",age=22,title="middle"):Employee.__init__(self,name,department,age)self.setTitle(title)def setTitle(self,title):self.__title=titledef show(self):Employee.show(self)print("职称:{}".format(self.__title))try:emp1=Employee("Rose")emp1.show()pm1=ProjectManager("Mike","electric",26,"high")pm1.setAge(30)pm1.show()
except Exception as ex:print("数据出现错误",ex)
运行结果:
2.方法重写
在继承关系中,子类会自动拥有父类定义的方法。如果父类定义的方法不能满是子类的需求,子类可以按照自己的方式重新实现从父类继承的方法,这就是方法的重写。
重写使得子类中的方法覆盖掉跟父类同名的方法,但需要注意,在子类中重写的方法要和父类被重写的方法具有相同的方法名和参数列表。
例 7-13 子类重写父类的方法
#ex0713.py 子类重写父类的方法
class Animal:def __init__(self,isAnimal):self.isAnimal = isAnimaldef run(self):print("父类 Animal 通用的 run()方法")def show(self):print("父类 Animal 的 show() 成员方法")class Cat(Animal):def __init__(self):print("子类的构造方法")def run(self): #方法重写super().run() #使用 super() 方法调用父类方法print("子类 Cat 重写 run() 成员方法")ani = Animal(False)
ani.show()
cat = Cat() #子类的构造方法
cat.run()
运行结果:
3.Python的多继承
一个子类存在多个父类的现象称为多继承。
Python 语言是支持多继承的,一个子类同时拥有多个父类的共同特征,即子类继承了多个父类的方法和属性。
扩展:
java不支持多继承,只支持单继承(即一个类只能有一个父类)。但是java接口支持多继承,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能)。
多继承是在子类名称后的括号中标注出要继承的多个父类,并且多个父类之间使用逗号分隔,其语法格式如下:
class 子类(父类1,父类2,···):类的属性类的方法
例 7-14 多继承示例
#ex0714.py 多继承示例
class Phone: #电话类def receive(self):#接收print("接电话")def send(self):#发送print("打电话")class Message: #消息类def reveive_Msg(self):print("接收信息")def send_Msg(self):print("发送短信")class Mobile(Phone,Message): #手机类pass #空语句mobile = Mobile()
mobile.receive()
mobile.send()
mobile.reveive_Msg()
mobile.send_Msg()
运行结果:
Python——类的继承相关推荐
- 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...
原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...
- 一文讲透python类的继承原理,好比调制鸡尾酒
python类继承的原理 python类继承的原理,大家完全可以将其想象为调鸡尾酒,就是电视上调酒师拿着一个杯子甩来甩去的跟扔印度飞饼一样的那种,我们不难发现,调鸡尾酒会用很多的原材料来勾兑(至于严格 ...
- python一个类继承多个类_如何让Python继承多个类?一文读懂Python类的继承
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过Python类的继承并且在此基础上衍生出让Python继承多个类的方法. 通过Python类的继承创建的新类称为子类或派生类, ...
- python 类的继承,类中的函数调用以及类输入数组
第一部分,类的继承 先给出一个例子: class People(): #定义类,要大写,python 2中要在括号里加如object这个单词def __init__(self,n,a,w): #定义一 ...
- python类与继承person类_关于python中类的继承及self
关于python中类的继承及self 如下,如果调用student类,则可以正常运行,但是如果去掉consumer.__init__(self, fee)中的self,将其改成consumer.__i ...
- Python 类的继承和组合
面向对象的编程带来的主要好处之一是代码的复用,实现这种复用的方法之一是通过继承机制. python中解决代码复用的方式:继承和组合. 1 什么是继承 继承是一种创建类的方法,在python中,一个类可 ...
- python 优先级继承_孤荷凌寒自学python第二十二天python类的继承
(完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自类A,意味着类B的内部代码块中就算不写任何代码,类B仍然 ...
- 关于python类的继承正确的说法是_关于python类的继承的一个小坑
我们来看看一个很普通的类的继承: class Model: name = "DNN" def __init__(self, name): self.name = name def ...
- python类的继承关系,python——类和类之间的关系(继承多态)
1.类和类之间的关系有三种:is-a.has-a和use-a关系. is-a关系也叫继承或泛化,比如学生和人的关系.手机和电子产品的关系都属于继承关系. has-a关系通常称之为关联,比如部门和员工的 ...
- python类的继承优缺点_python 类的三大特性--继承
继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题, 继承是一种创建新类的方式,在python中新建的类可以继承一个或多个父类,父 ...
最新文章
- ffmpeg 播放器原理
- vue中mixin的一点理解
- android上如何写配置文件
- makefile工作笔记0002---gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化
- Flutter进阶—创建有状态控件
- 密码学是如何保护区块链的 1
- 樊登读书会极致读后感_樊登:我只不过是把好为人师发挥到了极致
- java web程序设计答案郭克华_清华大学出版社郭克华JavaWeb程序设计上机习题答案及解析.doc...
- ubuntu16.04出现重复进入登陆界面问题
- 华为 ensp 下载安装
- 10天java基础学习笔记五
- WIN7 IE8假死现象解决方法
- uni-app通过canvas将两张图片合成一张图片
- Monte Carlo Method
- 志高显示df什么意思_志高空调故障代码df是什么意思?
- 华为摄像头(海思3519A/3516D)开发环境nfs共享目录
- RSA算法和DH算法的区别
- 可用的公开 RTSP/ RTMP 在线视频流资源地址
- 二叉树的前序遍历、中序遍历、后序遍历
- 经典的“外行管内行”案例
热门文章
- 【渝粤题库】国家开放大学2021春2251团体工作题目
- Codeforces Round 1384
- 华为Eudumon1000配置PORTAL认证
- MySQL连接navicat出现 2059 - authentication plugin ‘caching_sha2_password解决方法
- Linux默认端口介绍
- 表格里加横线一分为二_excel表格分割线一分为二斜线
- mma7660(重力感应传感器)
- python正态性检验_在python中做正态性检验示例
- 用计算机画对称图形,CAD画对称图形快捷键
- 教你:找回已失效的B站视频+批量下载B站收藏夹视频