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

二 面向对象三大特性

时间:2018-02-17 00:39:18      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:obj   object类   继承与派生   没有   逗号   property   python   常见   span   

一 继承与派生

  一、继承定义

  二、继承与抽象的关系

  三、继承与重用性

  四、派生

  五、组合与重用性

  六、接口与归一化设计

  七、抽象类

  八、继承实现的原理

  九、子类中调用父类的方法

二 多态与多态性

  一、多态

  二、多态性

三 封装

  一、封装定义

  二、特性(property)

  三、封装与扩展性

 

一 继承与派生

一、继承定义

什么是继承

继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。

子类会“”遗传”父类的属性,从而解决代码重用问题(比如练习7中Garen与Riven类有很多冗余的代码)

python中类的继承分为:单继承和多继承

 

 1 class ParentClass1: #定义父类
 2     pass
 3 
 4 class ParentClass2: #定义父类
 5     pass
 6 
 7 class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass
 8     pass
 9 
10 class SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类
11     pass

查看继承

1 >>> SubClass1.__bases__ #__base__只查看从左到右继承的第一个子类,__bases__则是查看所有继承的父类
2 (<class __main__.ParentClass1>,)
3 >>> SubClass2.__bases__
4 (<class __main__.ParentClass1>, <class __main__.ParentClass2>)

经典类与新式类

1.只有在python2中才分新式类和经典类,python3中统一都是新式类
2.在python2中,没有显式的继承object类的类,以及该类的子类,都是经典类
3.在python2中,显式地声明继承object的类,以及该类的子类,都是新式类
3.在python3中,无论是否继承object,都默认继承object,即python3中所有类均为新式类
#关于新式类与经典类的区别,我们稍后讨论

提示:如果没有指定基类,python的类会默认继承object类,object是所有python类的基类,它提供了一些常见方法(如__str__)的实现。

1 >>> ParentClass1.__bases__
2 (<class object>,)
3 >>> ParentClass2.__bases__
4 (<class object>,)

 

二 面向对象三大特性

标签:obj   object类   继承与派生   没有   逗号   property   python   常见   span   

原文地址:https://www.cnblogs.com/eric_yi/p/8451338.html

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