面向对象——继承介绍

继承

1.什么是继承

 在程序中继承是一种新建子类的方式,新建类的称之为子类派生类,被继承的类称之为父类基类超类。

继承描述的是一种遗传关系,子类可以重用父类的属性。

2.为何用继承?

减少类与类之间代码冗余的问题。

3.如何继承

先抽象在继承

在Python中继承的特点是单继承&多继承

class parent1:
    #父类,超类,基类
    pass

class parent2:
    pass

class son1(parent1):
    #单继承
    pass

class son2(parent1,parent2):
    #多继承
    pass

 查看子类的父类使用__bases__属性

print(son1.__bases__)
print(son2.__bases__)

#(<class '__main__.parent1'>,)
#(<class '__main__.parent1'>, <class '__main__.parent2'>)

最基本的属性和方法检索顺序(单继承情况)

对象——》类——》父类——》object(新式类)

#单继承 的属性检索顺序
class Too:
    x=1#对象的类中没有的话,从父类中找

class Bar(Too):
    x=2#若无对象本身,找对象的类

b1= Bar()
b1.x =3#先对象本身
print(b1.x)

上述提及新式类是Python2和Python3在继承上的区别

新式类:但凡继承object类的子类,以及该子类的子子类……都称之为新式类。

经典类:没有继承object类的子类,以及该子类的子子类……都称之为经典类。

只有在Python2中才区分新式类与经典类。

#python2
#新式类
class Xin(object):
    pass