ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

继承

2019-02-19 15:53:22  阅读:220  来源: 互联网

标签:继承 子类 object l1 父类 新式


继承

  继承是两个对象之间产生的一种关系

  在oop的程序中继承描述类与类之间的一种关系

  继承的好处:生活中你继承你爹的财产就可以直接使用这些财产

        程序中一个类a继承另一个类b a就是可以直接使用b类中的属性和方法

  具体来说:继承极大提高了代码的重要性

  名词解释:a继承b a称之为子类(派生类) b类称之为父类(基类)

  继承描述的是什么是什么的关系

  在使用继承的时候 一定是先抽象再继承

抽象

  抽取一堆类共同拥有的内容 形成一个新的抽象概念(类) 形成一个新的抽象概念(类) 这个过程就叫做抽象

  如 佩奇 麦兜 这就是抽象

  注意:恨过情况下 抽象得到的新的类型与业务不是相关的仅仅是因为代码需求

属性查找 

  没有继承关系时

    对象——》类中

  存在继承关系后

    对象——》自身的类中——》父类 父类的父类。。。——》object

    object是所有类的根类所有类都直接或者间接的继承自object

    在自定义的时候如果你没有手动继承任何类 默认继承object

    object中包含所有对象通用的方法

  新式类

    只要是继承自object都叫新式类 在python3中所有类都是新式类

    python2中不会自动继承object 需要手动继承object才能变成一个新式类

    新式类和经典类的区别在于继承关系中的属性的查找顺序不同

  可以继承一个系统已有的类来扩展新功能

  需求:给list扩展类型限制功能 只允许加整型数据

class MyList(list):
def append(self, object):
print('append run')
if type(object) == int:
list.append(self, object)
else:
print('只允许添加整型')


l1 = MyList()
l1.append('aaa')
print(l1)
l1.append(66)
print(l1)
派生:

  派生:当一个类继承另一个类并存在与父类不同的内容时那么称之为派生类

    通常情况下一个子类就是一个派生类

  覆盖 

    在继承关系中子类可以出现与父类完全相同的方法 根据查找顺序会优先使用

    子类中的方法 这种情况就称之为覆盖

子类访问父类

  很多情况下我们需要在子类中来访问父类的内容

  就可以通过super().要访问的名字

组合

  即把不同的对象组合到一起 也是用来减少重复代码

  一个对象可以把另一个对象作为属性来使用

多继承

  python支持多继承

  一个类可以继承多个其他类

  默认情况下 是按照继承顺序来访问属性

  好处:可以同时拥有多个类中已存在的内容

  坏处:如果父类中出现了重复的名字执行顺序需要参考

菱形继承

  说的是一个类有多个父类并且多个父类之间有公共父类

经典类与新式类

  经典类和新式类在访问顺序上有所不同

  经典类 按照深度优先的顺序

  新式类 也是按照深度优先 遇到公共父类则找另一条继承关系 最后才会找公共父类

标签:继承,子类,object,l1,父类,新式
来源: https://www.cnblogs.com/ShenJunHui6/p/10401436.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有