zoukankan      html  css  js  c++  java
  • 面向对象概论之继承简述,组合简述,菱形继承简述

    一.继承

    1.简述:

    用来表述的是类与类之间的关系,比如A继承了B,那么A会有B已有的方法和属性。

    那么A称为子类,B为父类。(父类又叫:基类)

    使用继承可以不再用重复写代码的情况下,从而重复使用代码。

    提高了编程效率。

    2.正确使用继承思想:

          1.先抽象然后再继承

          2.继承已经存在的类,可拓展或是修改原始功能

    3.在继承里的属性查找顺序:

    对象自己的----->所在的类中----->父类----->父类的父类------->Object

    4.继承语法表达:

    class 类名称(父类名称):
    #类的内容

    #在python中可以继承多个父类

    5,派生

    简述:

       在继承中,如果子类中出现了与父类中不同的属性和方法时,那么这个子类我们称为派生类

       由于子类一般都不会与父类一摸一样,所以派生类都是指的是子类。

    6,覆盖

    简述:

       也称之为重写。当子类出现了与父类名称完全一致的属性或方法时,子类的属性和方法会覆盖父类的,也就是说当子类找同样的属性和方法时,都是找子类自己的。

    7,子类中访问父类中数据的语法:

    方式1:
    super(当前类名称,self).你要调的父类的属性或方法
    方式2: super().你要调的父类的属性或方法
    方式3: 类名称.你要调的父类的属性或方法(self)
    #方式3与继承无关

    关键点:当子类继承父类后,而且覆盖了父类的__init__方法时,

                  必须在初始化方法的第一行调用父类的__init__方法,

                  并传入父类所需要的参数

    二,组合

    1,简述:

         组合使用来描述两个对象之间的关系的,而且两个对象不是同个类型,而是对象1有对象2的关系

         比如,学生这个对象有电脑这个对象。

         将对象作为另一个对象的属性。

     

    2,目的:

          也是为了重用现有代码

          相对继承来说,偶合度降低

     

    三,菱形继承

    1.新式类

    任何显式或隐式的继承自己对象的类就称之为新式类。

    在python3中全都是新式类

    当出现了菱形继承时,在新式类里查找顺序,先深度,当遇到了共同的父类时,再广度找。

    如下图:

    情况一:当有共同父类时:

     情况二:当有个没有共同父类时:

    2.经典类

    不是对象的子类,仅在python2中出现

    当出现了菱形继承时,深度就是优先的查找顺序。

     

  • 相关阅读:
    js编码中常用的知识点
    oracle函数的使用
    oracle 临时表的使用
    oracle11G归档日志管理
    oracle中 高水位线详解
    oracle并行模式(Parallel)
    oracle常用函数详解(详细)
    oracle系统表的查询
    15000 字的 SQL 语句大全
    oracle_单引号问题和execute immediate 赋值问题
  • 原文地址:https://www.cnblogs.com/wujc3/p/11246873.html
Copyright © 2011-2022 走看看