2、假设某商店有如下几种货品:衬衣、帽子、立柜。每一种货物都 有与其关联的说明信息。 衬衣:单价、产地、库存量、布料: 帽子:单价、产地、库存量、布料、样式(平顶成尖顶) 立柜:单价、产地、库存量
时间: 2023-09-19 11:09:18 浏览: 60
、材质、尺寸。请问如何用面向对象的思想设计表示这些货品及其说明信息的类?
可以设计一个基类 Product,用来表示货品。然后可以定义三个派生类:Shirt(衬衣)、Hat(帽子)和Cabinet(立柜),分别表示不同种类的货品。每个派生类都包含了基类的成员变量和方法,同时还有自己独有的成员变量和方法。
具体的类设计如下:
```python
class Product:
def __init__(self, price, origin, stock):
self.price = price # 单价
self.origin = origin # 产地
self.stock = stock # 库存量
def get_price(self):
return self.price
def get_origin(self):
return self.origin
def get_stock(self):
return self.stock
class Shirt(Product):
def __init__(self, price, origin, stock, material):
super().__init__(price, origin, stock)
self.material = material # 布料
def get_material(self):
return self.material
class Hat(Product):
def __init__(self, price, origin, stock, material, style):
super().__init__(price, origin, stock)
self.material = material # 布料
self.style = style # 样式
def get_material(self):
return self.material
def get_style(self):
return self.style
class Cabinet(Product):
def __init__(self, price, origin, stock, material, size):
super().__init__(price, origin, stock)
self.material = material # 材质
self.size = size # 尺寸
def get_material(self):
return self.material
def get_size(self):
return self.size
```
这样就可以通过定义不同的派生类,来表示不同种类的货品及其说明信息。同时,通过继承基类的成员变量和方法,可以避免重复编写代码。