zoukankan      html  css  js  c++  java
  • 面向对象编程之继承

    面相对象编程之继承

    什么是继承:

    继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为基类或超类

    在Python中,一个子类可以继承多个父类

    在其他语言中,一个字累只能继承一个父类

    继承的作用:

    减少代码的冗余

    如何实现继承:

    1、先确认谁是子类,谁是父类

    2、在定义子类时,子类名(父类名)

    如何寻找继承关系:

    确认谁是子集

    确认谁是父集

    得先抽象,再继承

    -- 抽取对象之间相似的部分,总结出类

    -- 抽取类之间相似的部分,总结出父类

     

    注意:程度的执行顺序是由上到下,父类必须定义在子类上方

    在继承背景下,对象属性的查找顺序:

    1、先从对象自己的名称空间中查找

    2、对象中没有,从子类的名称空间中查找

    3、子类中没有,从父类的名称空间中查找,若父类没有,就报错

     

    派生

    指的是子类继承父类的属性与方法,并且派生出自己独有的属性与方式

    若子类中的方法名与父类相同,优先用子类

     

    子类重用父类的属性,并派生出新的属性

    解决方式:

    1、直接引用父类的——init——为其传参,并添加子类属性

    2、通过super来指定父类的属性

    -- 父类是一个特殊类,调用super得到一个对象,该对象指向父类的名称空间

    注意: 两种方法使用那一个都可以,但不能两种方式混合使用

     

    经典类与新式类:

    新式类:1、凡是继承object 的类或子类都是新式类

    2、在python3 中所有的类都默认继承object

    经典类:1、在python2 中才会有经典类与新式类之分

    2、在python2 中,凡是没有继承object 的类,都是经典类

    在python3中,提供了一个查找新式查找顺序的内置方法

    mro():会把当前类的继承关系列出来

  • 相关阅读:
    spring注解实现业务层事务管理,当业务层自调用时,事务失效问题解决
    spring的事务
    maven创建web项目
    eclipse安装最新版svn
    .ncx文件剖析
    关闭MongoDB服务的几种方法
    mongodb添加验证用户 删除用户
    高性能kv存储之Redis、Redis Cluster、Pika:如何应对4000亿的日访问量?
    Python中msgpack库的使用
    彻底理解一致性哈希算法(consistent hashing)
  • 原文地址:https://www.cnblogs.com/127-2933/p/11943083.html
Copyright © 2011-2022 走看看