面向对象-继承与重用

继承:类与类之间的关系,是一种什么“是”什么的关系。解决代码重用问题,继承是创建新类的方式。

py中新建类可以继承一个或多个类。

切记,self表示对象本身

#创建一个父类1
class ParentClass1:
    pass
#创建一个父类2
class ParentClass2:
    pass
#创建一个子类继承父类1
class SubClass1(ParentClass1):
    pass
#创建一个子类继承父类1和父类2
class SubClass2(ParentClass1,ParentClass2):
    pass

被继承类可称为父类、超类或基类,新建类可以称为子类或派生类

继承查看

print(SubClass1.__bases__)
print(SubClass2.__bases__)

继承

#创建一个父类
class Hero:
    def __init__(self,nickname,life_value,aggresivity):
        self.nickname=nickname
        self.life_value=life_value
        self.aggersivity=aggresivity
    def attack(selfs,enemy):
        enemy.life_value -= selfs.aggersivity
#创建新的子类,继承于父类Hero
class Garen(Hero):
    # camp='Demacia'
    pass
#创建新的子类,继承于父类Hero
class Riven(Hero):
    # camp='Noxus'
    pass

派生

子类可以拥有自己独特的属性

#创建一个父类
class Hero:
    def __init__(self,nickname,life_value,aggresivity):
        self.nickname=nickname
        self.life_value=life_value
        self.aggersivity=aggresivity
    def attack(selfs,enemy):
        enemy.life_value -= selfs.aggersivity
#创建新的子类,继承于父类Hero
class Garen(Hero):
    #派生出新的属性
    camp='Demacia'

#创建新的子类,继承于父类Hero
class Riven(Hero):
    # 派生出新的属性
    camp='Noxus'
#实例化对象
g=Garen('草丛伦',100,30)
r=Riven("锐雯雯",90,40)
print(g.camp)
g.attack(r)
print(r.life_value)

 

posted @ 2018-04-17 19:45  丫丫625202  阅读(341)  评论(0编辑  收藏  举报