文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

day24 01 初识继承

2023-01-31 00:43

关注

day24 01 初识继承

 

面向对象的三大特性:继承,多态,封装

 

一、继承的概念

继承:是一种创建新类的方式,新建的类可以继承一个或者多个父类,父类又可称基类或超类,新建的类称为派生类或者子类

class A:  # 父类,基类,超类
    pass
class B:  # 父类,基类,超类
    pass
class A_son(A,B):  # 子类,派生类
    pass
class AB_son(A,B):  # 子类,派生类
    pass
  • 一个类可以被多个类继承,先有父类才有子类
  • 一个类可以继承多个父类----只在python里面才可以,其他语言不可以

注意:从父类不能知道自己将会被哪个类继承,但是从子类肯定可以知道自己的父类,这是从子类像父类指向单方向线程

 

二、父类的查看方法

类似于对像可以使用_dict_方法查看属性,子类也可以使用_bases_方法查看它的父类

class A:  # 父类,基类,超类
    pass
class B:  # 父类,基类,超类
    pass
class A_son(A):  # 子类,派生类
    pass
class B_son(A,B):  # 子类,派生类
    pass
class AB_son(A,B):  # 子类,派生类
    pass
print(A_son.__bases__)
print(B_son.__bases__)
print(AB_son.__bases__)
print(A.__bases__)
print(B.__bases__)

运行结果:

C:\Users\sku1-1\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/sku1-1/PycharmProjects/untitled/day24  01 初识继承.py"
(<class '__main__.A'>,)
(<class '__main__.A'>, <class '__main__.B'>)
(<class '__main__.A'>, <class '__main__.B'>)
(<class 'object'>,)
(<class 'object'>,)

Process finished with exit code 0

从上面的运行结果可以看到,特别的父类A和B的父类都是‘object’,如果没有继承父类,就默认继承‘object’,这也是python3的新式类

 

三、继承表达的关系:什么是什么的关系

       只有是两个类之间才会产生继承的关系,两个类之间存在一些共同的抽象的东西,将这些共同的东西抽象出来就可以成为这两个类的父类

  以之前的人狗大战的游戏为例,里面的人物角色与狗的角色,定义它们的类的时候,里面有一些属性是相同的,比如:name,blood,aggr,而且狗和人都是动物,这样就可以抽象出它们的父类---animal,参考以下代码:

class animal:  # 父类
    def __init__(self,name,blood,aggr):
        self.name=name
        self.blood=blood
        self.aggr=aggr
class dog(animal):  # 子类
    def bite(self,someone):
        someone.blood-=self.aggr
class someone(animal):  # 子类
    def attack(self,dog):
        dog.blood -=self.aggr

dog1 = dog('溜溜球',200,500)
print(dog1.name)
person1 = someone('王昭君',300,500)
print(person1.name)

运行结果:

溜溜球
王昭君

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯