码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象概论之继承简述,组合简述,菱形继承简述

时间:2019-07-25 23:45:55      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:ali   存在   python3   继承   就是   code   方法   完全   另一个   

一.继承

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中出现

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

 

 

面向对象概论之继承简述,组合简述,菱形继承简述

标签:ali   存在   python3   继承   就是   code   方法   完全   另一个   

原文地址:https://www.cnblogs.com/wujc3/p/11246873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!