面向对象-继承与重用
继承:类与类之间的关系,是一种什么“是”什么的关系。解决代码重用问题,继承是创建新类的方式。
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)