zoukankan      html  css  js  c++  java
  • Python学习17之类3继承

    ''''''
    '''
    继承:在继承原有类功能的基础上,增加新的功能(属性或者方法),形成新的类
    被继承的类:父类
    新的类:子类

    格式:class 子类(父类)
    class 子类(父类1,父类2,父类3...)
    '''
    class Box1():
    def __init__(self,l1,w1,h1):
    self.l=l1
    self.w=w1
    self.h=h1
    def volume(self):
    return self.l*self.w*self.h
    class Box2(Box1):
    def __init__(self,l1,w1,h1):
    super().__init__(l1,w1,h1) #子类的init函数里面的参数为继承父类的参数,通过super函数直接引用(继承)
    self.color='blue'
    self.material='paper'
    self.type='new'
    def area(self):
    re=self.l*self.w+self.l*self.h+self.w*self.h
    return re*2
    my_box2=Box2(10,10,10)
    print("该立方体体积为%d"%(my_box2.volume()))
    print("该立方体的表面积为%d"%(my_box2.area()))
    '''
    继承的使用方法为 class 子类名(父类名)
    重新定义子类的__init__函数,如父类__init__函数有参数,则直接照抄填入括号作为init函数的参数
    之后在子类的__init__函数中提供super()函数,实现父类与子类的关联,若父类有参数,需要照抄参数
    在子类里可以新增属性,以及定义新的方法
    '''
    '''
    重写方法:
    当程序员发现子类继承父类的方法之后,该方法无法满足子类的需求,可以在子类中重写该方法
    注意:重写的方法必须与你重写的这个父类方法名称一致
    在重写的方法中,可以加入新的参数,直接在括号里添加即可,无需重复添加父类的参数。
    具体如下例:求num个相同盒子的体积之和
    '''
    class Box3(Box1):
    def __init__(self,l1,w1,h1):
    super().__init__(l1,w1,h1) #子类的init函数里面的参数为继承父类的参数,通过super函数直接引用(继承)
    self.color='blue'
    self.material='paper'
    self.type='new'
    def area(self):
    re=self.l*self.w+self.l*self.h+self.w*self.h
    return re*2
    def volume(self,num):
    return self.l*self.w*self.h*num
    my_box3=Box3(10,10,10)
    print("该立方体体积为%d"%(my_box3.volume(5)))
    print("该立方体的表面积为%d"%(my_box3.area()))
  • 相关阅读:
    为什么越来越少的人用jQuery
    远程工作是一种怎样的体验?
    JavaScript黑客是这样窃取比特币的,Vue开发者不用担心!
    原有vue项目接入typescript
    ES6核心特性
    强烈推荐10个值得订阅的国外技术周报
    jquery ajax超时设置(转载)
    Multiple “order by” in LINQ(转载)
    Cookies, Claims and Authentication in ASP.NET Core(转载)
    Json.NET序列化后包含类型,保证序列化和反序列化的对象类型相同(转载)
  • 原文地址:https://www.cnblogs.com/wsxcode/p/12422755.html
Copyright © 2011-2022 走看看