Python面向对象2.7类继承
2017-04-26 08:23
330 查看
继承类定义
单继承
class <类名>(父类名)
<代码快>
类的多重继承
class 类名(父类1,父类2,....,父类n)
<代码块>
Python的类可以继承多个类,Java和C#中则只能继承一个类
Python的类如果继承了多个类,那么其寻找方法的方式有两种,分别是:深度优先和广度优先
当类是经典类时,多继承情况下,会按照深度优先方式查找
当类是新式类时,多继承情况下,会按照广度优先方式查找
经典类和新式类,从字面上可以看出一个老一个新,新的必然包含了跟多的功能,也是之后推荐的写法,从写法上区分的话,如果 当前类或者父类继承了object类,那么该类便是新式类,否则便是经典类。
经典类多继承
class D:
def bar(self):
print 'D.bar'
class C(D):
def bar(self):
print 'C.bar'
class B(D):
def bar(self):
print 'B.bar'
class A(B, C):
def bar(self):
print 'A.bar'
a = A()
# 执行bar方法时
# 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去D类中找,如果D类中么有,则继续去C类中找,如果还是未找到,则报错
# 所以,查找顺序:A --> B --> D --> C
# 在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了
a.bar()
新式类多继承
class D(object):
def bar(self):
print 'D.bar'
class C(D):
def bar(self):
print 'C.bar'
class B(D):
def bar(self):
print 'B.bar'
class A(B, C):
def bar(self):
print 'A.bar'
a = A()
# 执行bar方法时
# 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去C类中找,如果C类中么有,则继续去D类中找,如果还是未找到,则报错
# 所以,查找顺序:A --> B --> C --> D
# 在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了
a.bar()
经典类:首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去D类中找,如果D类中么有,则继续去C类中找,如果还是未找到,则报错
新式类:首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去C类中找,如果C类中么有,则继续去D类中找,如果还是未找到,则报错
**注意:88在上述查找过程中,一旦找到,则寻找过程立即中断,便不会再继续找
相关文章推荐
- Python面向对象2.7类继承
- python面向对象初学(类的继承)
- 3、python面向对象之继承
- python面向对象(封装、继承、多态)+ 面向对象小栗子
- python面向对象特征(二)继承
- Python--面向对象的程序设计之继承实现的原理(继承顺序)、封装、property
- python 面向对象多继承和多态
- Python 面向对象编程(三)继承与多态
- Python语法第10讲:面向对象之继承
- python面向对象学习(四)继承
- python入门(二十八):面向对象之继承
- python学习之路3之面向对象与继承
- python学习第十五天 -面向对象之继承和多态
- 【Python】[面向对象高级编程] 多成继承,定制类,使用枚举
- Python面向对象程序设计之继承与多继承用法分析
- Python--面向对象的程序设计之继承与派生
- python 面向对象继承
- python面向对象开发(继承)
- 对于Python面向对象部分的理解(封装继承多态等等)
- Python面向对象之继承