类改造问题
class Box1(): #类定义
'''求立方体的类'''
def __init__(self,length1,width1,heigth1,c1=0): #传递参数的保留函数__init__
self.length=length1 #长数据变量
self.width=width1 #宽数据变量
self.height=heigth1 #高数据变量
def volume(self):
return self.length*self.width*self.height
#=================================================
class Box2(Box1): #继承Box1定义子类Box2
def __init__(self,length1,width1,heigth1): #子类重新定义__init__
super().__init__(length1,width1,heigth1) #super实现父类与子类的联系
self.color='white' #增加颜色属性
self.material='paper' #增加材料属性
self.type='fish' #增加类型属性
def area(self): #增加表面积函数
re=self.length*self.width+self.length*self.height+self.width*self.height
return re*2
#=============================================== 主程序调用类及实例
my_box2=Box2(10,10,10) #通过子Box2创建my_box2实例
print('立方体的体积是%d'%(my_box2.volume()))
print('立方体的表面积是%d' %(my_box2.area()))
print('颜色是%s,材料%s,类型%s'%(my_box2.color,my_box2.material,my_box2.type))
执行结果
立方体的体积是1000
立方体的表面积是600
颜色是white,材料paper,类型fish
继承使用方法
1)子类名声明时引入父类名,class Box2(Box1):
2)重新定义子类的__init__函数时,若父__init__函数有参数,则照抄父函数的的参数
3)在子类__init__里提供super函数,实现父类与子类的关联,若父类有参数,需要同步参数(self除外),super().init(length1,width1,heigth1)
4)可以在子类里增加新属性定义 self.color='white'
5)可以在子类里增加新方法定义 def area(self):
重写方法
class Box2(Box1): #继承Box1定义子类Box2
def __init__(self,length1,width1,heigth1): #子类重新定义__init__
super().__init__(length1,width1,heigth1) #super实现父类与子类的联系
self.color='white' #增加颜色属性
self.material='paper' #增加材料属性
self.type='fish' #增加类型属性
def area(self): #增加表面积函数
re=self.length*self.width+self.length*self.height+self.width*self.height
return re*2
#-----------------此处重写定义volume
def volume(self,num=1): #要求函数名称与父类的名称一致
return self.length*self.width*self.height*num
my_box2=Box2(10,10,10)
print('6个立方体的体积是%d'%(my_box2.volume(6))) #6000

浙公网安备 33010602011771号