zoukankan      html  css  js  c++  java
  • 面向对象-继承与重用

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

    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)

  • 相关阅读:
    [BZOJ3530][SDOI2014]数数
    [Luogu3121][USACO15FEB]审查Censoring
    [BZOJ1212][HNOI2004]L语言
    [Luogu3041][USACO12JAN]视频游戏的连击Video Game Combos
    AC自动机总结
    (三)LDAP 新增用户
    (二) LDAP 安装
    (一)LDAP 简介
    (十三)VMware Harbor 身份验证模式
    loj#2541. 「PKUWC2018」猎人杀
  • 原文地址:https://www.cnblogs.com/yaya625202/p/8863625.html
Copyright © 2011-2022 走看看