一、继承的概念:
- 子类 拥有 父类 的所有 方法 和 属性
- 子类 继承自 父类,可以直接 享受 父类中已经封装好的方法,不需要再次开发
- 子类 中应该根据 职责,封装 子类特有的 属性和方法
二、继承的语法结构:
class 类名(父类名):
pass
三、继承的使用示例:
# 父类
class Role:
def __init__(self, name, weapon):
self.name = name #self 为实例本身的名称
self.weapon = weapon #self 为实例本身的名称
def show_me(self): #self 为实例本身的名称
print('我是%s,我用的武器是%s' % (self.name, self.weapon))
# 子类1
class Warrior(Role):
def attack(self, target): #子类Warrior定义自己的方法
print('与%s近身肉搏' % target)
# 子类2
class Mage(Role):
def attack(self, target): #子类Mage定义自己的方法
print('远程打击%s' % target)
if __name__ == '__main__':
lb = Warrior('吕布', '方天画戟 ')
km = Mage('孔明', '羽扇')
lb.show_me()
km.show_me()
lb.attack('张飞') #子类的对象调用自己的方法attack()
km.attack('曹操')
四、多重继承:
- Python 允许多重继承,即:一个类可以是多个父类的子类,子类可以拥有所有父类的属性
- 在使用方法时,python有自己的查找顺序:自下向上,自左向右(就近原则)
五、多重继承的语法结构:
class 类名(父类1,父类2,父类3...):
pass
六、多重继承使用示例
class A:
def func1(self):
print('A func')
def func4(self): #类A中,包含同样的方法名func4()
print('A func4')
class B:
def func2(self):
print('B func')
def func4(self): #类B中,包含同样的方法名func4()
print('B func4')
class C(A, B):# 多重继承A和B
def func3(self):
print('C func')
if __name__ == '__main__':
c1 = C()
c1.func1()
c1.func2()
c1.func3()
c1.func4()
[root@localhost xxx]# python3 multi_extend.py
A func
B func
C func
A func4 # 就近原则先打印A类中的func4
共有 0 条评论