''''''
'''
继承:在继承原有类功能的基础上,增加新的功能(属性或者方法),形成新的类
被继承的类:父类
新的类:子类
格式: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()))