python中类是存在继承关系的,继承又分单继承与多继承。
单继承通常的表示方式:
class 子类(父类):
多继承通常的表示方式:
class 子类(父类1,父类2,父类3):
子类继承父类,子类能够继承父类的属性
class Father():
Father='xxx'
class Son(Father):
son='x'
#Son类继承了Father类的属性
print(Son.Father)
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()
子类继承父类,子类能够继承父类的方法
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()
输出结果:
由此我们能够在子类中重写父类的方法,只需要在子类中写一个同名的方法,则这个方法会覆盖父类的方法,使得在子类使用此方法时都是使用的子类重写后的方法。
以上在实例中使用同样适用。
多继承与单继承几乎差不多,只是继承的父类不止一中。
如果遇到父类中拥有同一属性的父类不止一个时,我们优先使用拥有此属性较前的父类。
class father1():
father='a'
class father2():
father='b'
class father3():
father='c'
class son(father1,father2,father3):
pass
#优先使用第一个父类的属性
print(son.father)
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()