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

分享
计算机软件开发 2024-9-27 21:30:12 106 0 来自 中国
一、继续的概念:


  • 子类 拥有 父类 的全部 方法 和 属性
  • 子类 继续自 父类,可以直接 享受 父类中已经封装好的方法,不必要再次开辟
  • 子类 中应该根据 职责,封装 子类特有的 属性和方法
二、继续的语法结构:

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))# 子类1class Warrior(Role):    def attack(self, target): #子类Warrior界说自己的方法        print('与%s近身肉搏' % target)# 子类2class 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.pyA funcB funcC funcA func4    # 就近原则先打印A类中的func4
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-22 09:14, Processed in 0.157449 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表