js css htmlPython进阶

Python面向对象编程-3·继承

2023-01-13  本文已影响0人  技术老男孩

一、继承的概念:

继承图例.png

二、继承的语法结构:

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('曹操')

四、多重继承:

五、多重继承的语法结构:

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
上一篇 下一篇

猜你喜欢

热点阅读