Python 类的继承

python中类是存在继承关系的,继承又分单继承与多继承。
单继承通常的表示方式:

class 子类(父类):

多继承通常的表示方式:

class 子类(父类1,父类2,父类3):

1、单继承:

1.1、继承类的属性:

子类继承父类,子类能够继承父类的属性

class Father():
    Father='xxx'
class Son(Father):
    son='x'
#Son类继承了Father类的属性
print(Son.Father)

输出结果:
Python 类的继承_第1张图片
子类的实例也同样可以:

class Father():
    Father='xxx'
class Son(Father):
    def __init__(self,name):
        self.name=name
    def show(self):
        print('我是{},我的父亲是{}'.format(self.name,self.Father))
a=Son('张三')
a.show()

输出结果:
Python 类的继承_第2张图片

1.2、继承类的方法:

子类继承父类,子类能够继承父类的方法

class Father():
    father='张三'
    def show(self):
        print('this is father show')
class Son(Father):
    pass
#继承了父类的show
Son().show()

如果子类与父类具有相同名称的方法,则使用时,优先使用子类的方法。

class Father():
    father='张三'
    def show(self):
        print('this is father show')
class Son(Father):
    def show(self):
        print('this is son show')
#优先使用子类的方法
Son().show()

输出结果:
Python 类的继承_第3张图片
由此我们能够在子类中重写父类的方法,只需要在子类中写一个同名的方法,则这个方法会覆盖父类的方法,使得在子类使用此方法时都是使用的子类重写后的方法。

以上在实例中使用同样适用。

2、多继承:

多继承与单继承几乎差不多,只是继承的父类不止一中。
如果遇到父类中拥有同一属性的父类不止一个时,我们优先使用拥有此属性较前的父类。

class father1():
    father='a'
class father2():
    father='b'
class father3():
    father='c'
class son(father1,father2,father3):
    pass
#优先使用第一个父类的属性
print(son.father)

输出结果:
Python 类的继承_第4张图片
如遇到相同方法不止一个时,上述规则同样适用。

class father1():
    father='a'
    def show(self):
        print('this is father1 show')
class father2():
    father='b'
    def show(self):
        print('this is father2 show')
class father3():
    father='c'
    def show(self):
        print('this is father3 show')
class son(father1,father2,father3):
    pass
#优先使用第一个父类的方法
son().show()

输出结果:
Python 类的继承_第5张图片
以上在实例中使用同样适用。

你可能感兴趣的:(python)