阶段二开始-第一章—8天Python从入门到精通【itheima】-118节(继承)
目录
118节——继承
1.学习目标
2.继承的引出
3.单继承
4.多继承
5.注意事项
6.小节总结
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
关于 “老师与学生的困局”—— 工程思维看教育
你的 “休学突围”—— 私有成员的力量
给未来的战略:做 “无法被继承的新类”
118节——继承
1.学习目标
1.理解继承的概念
2.掌握继承的使用方法
3.掌握pass关键字的作用
2.继承的引出
继承可以理解为手机的迭代升级,一代在一代的基础上不断迭代升级。
若不使用继承,每一次都是不在原有基础上更新迭代,而是每一次去重新写一个类,过程略显繁琐。
3.单继承
在继承的基础上,父类的东西子类都可以用,而且是继承关系,重复的想要继承的东西,就无需再写,把想要在子类中出现的东西,写出来就好。
继承的语法:
在继承中,是不含私有方法的。
单继承的代码演示:
# 118节——继承"""
演示面向对象:继承的基础语法
"""# 演示单继承
# 定义父类
class Phone:# 定义父类中的成员变量IMEI=None #序列号producer="HM" #生产厂商# 定义父类中的成员方法def call_by_4g(self):print("4g通话")# 定义子类
class Phone2022(Phone):# 定义子类中新的成员变量face_id="10001"# 定义子类中新的成员方法def call_by_5g(self):print("2022年的新功能:5g通话")# 针对于子类,创建对象,并检验继承父类的成员变量和成员方法能否使用
phone=Phone2022()print(phone.producer) #HM
phone.call_by_4g() #4g通话
phone.call_by_5g() #2022年的新功能:5g通话
4.多继承
多继承的语法:
# 演示多继承# 第一个手机类 【父类】
class Phone:IMEI="10001"producer="HM"def call_by_4g(self):print("4g通话")# 第二个NFC读卡器类 【父类】
class NFCReader:nfc_type="第五代"producer="HM"def read_card(self):print("NFC读卡")def write_card(self):print("NFC写卡")# 第三个红外线遥控器类 【父类】
class RemoteControl:rc_type="红外遥控"def control(self):print("红外遥控开启了")# 构建子类
class MyPhone(Phone,NFCReader,RemoteControl):pass #pass用来补全语法,替代类里面的内容# 创建子类的对象,并测试子类在多继承中是否能通过多继承继承到父类中的内容
phone=MyPhone()phone.call_by_4g()
phone.read_card()
phone.write_card()
phone.control()
# 控制台输出结果:
# 4g通话
# NFC读卡
# NFC写卡
# 红外遥控开启了
5.注意事项
多继承中的注意事项:在多继承中,如果继承的父类有多个同名,那么,继承的优先级从左往右依次降低。
【也就是:先继承的先保留,后继承的被覆盖】
# 演示在多继承的场景下,父类成员名一致的情况# 演示多继承# 第一个手机类 【父类】
class Phone:IMEI="10001"producer="itcast"def call_by_4g(self):print("4g通话")# 第二个NFC读卡器类 【父类】
class NFCReader:nfc_type="第五代"producer="HM"def read_card(self):print("NFC读卡")def write_card(self):print("NFC写卡")# 第三个红外线遥控器类 【父类】
class RemoteControl:rc_type="红外遥控"def control(self):print("红外遥控开启了")# 构建子类
class MyPhone(Phone,NFCReader,RemoteControl):pass #pass用来补全语法,替代类里面的内容# 创建子类的对象,并测试子类在多继承中是否能通过多继承继承到父类中的内容
phone=MyPhone()phone.call_by_4g()
phone.read_card()
phone.write_card()
phone.control()
# 控制台输出结果:
# 4g通话
# NFC读卡
# NFC写卡
# 红外遥控开启了print(phone.producer) #itcast
# 先继承的先保留,后继承的被覆盖
6.小节总结
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
Patrick 学弟:
展信如晤。
你代码里的 “继承” 让我想起在现代建设做工程师时,接手的项目总要继承前团队的烂摊子 —— 既有可用的图纸(父类属性),也得推翻错误设计(突破继承局限)。你的同学继承了 “安逸” 的父类,却懒得拓展新功能;而你在休学的 “异常状态” 里,硬是给人生这个类新增了 “韧性” 和 “清醒” 的方法,这比任何语法都珍贵。
关于 “老师与学生的困局”—— 工程思维看教育
那位 HBase 老师的愤怒,像极了我在清溪川工地看到工人偷懒时的心情。但后来我明白:工程师的责任是建好桥,不是逼不会游泳的人跳水。教育和建桥一样,材料不行,再努力也撑不起重量。你要学的,是从这些 “不及格” 的现实里 筛选可用的 “父类资源”:比如老师的负责态度(可借鉴的方法)、同学的反面教材(需规避的错误),把它们变成你的测试用例,而非情绪负担。
你的 “休学突围”—— 私有成员的力量
我在釜山海关当小职员时,也经历过 “人生异常”:被诬陷、停职,相当于被强制抛出异常。但我每天在码头扛包时,都在给 “李明博” 这个类写私有方法:啃会计书、学日语(如同你死磕 Python)。后来证明,那些被隐藏的努力(如同代码里的私有成员),才是突破继承链的关键。
你休学仍坚持,像极了我在工地宿舍抄字典的日子 ——真正的成长,往往发生在 “父类” 看不到的地方。
给未来的战略:做 “无法被继承的新类”
你说 “前途冥冥注定”,但我在青瓦台领悟:所有注定,都是 “持续拓展” 的结果。就像你的子类
Phone2022
,继承 4G 却开发 5G—— 明年复学,你要做的不是和摆烂的同学比,而是让自己成为 “无法被继承的新类”:
- 当别人纠结父类的
producer
(出身、环境),你已用 Python 和大数据,给人生写好了call_by_5G
的方法;- 当他人抱怨 “父类方法过时”(就业难),你早通过私有成员(持续学习),攒够了重构的资本。
清溪川的水变清,不是因为骂脏水,而是持续注入清泉。你现在敲的每一行代码,流的每一滴汗,都是往人生河流里注入的清水。记住:能突破继承链的,从不是对父类的抱怨,而是对新功能的执着。
盼你归来时,已把 “专科生” 的父类,改写成 “数据工程师” 的新类。
李明博
2025 年 6 月 28 日