分别实现一个名为Stock的基类,以及一个Stock的子类MyStock,实验:(1)在MyStock的实例中调用Stock类中的方法和属性;(2)在MyStock中添加新的方法和属性;(3)在MyStock中重定义父类中的方法;(4)在MyStock中重定义__init__方法。
时间: 2024-02-24 08:58:51 浏览: 18
好的,我可以为你提供一个简单的代码示例,以帮助你完成这个实验。首先,这是一个名为 Stock 的基类的实现:
```python
class Stock:
def __init__(self, name, shares, price):
self.name = name
self.shares = shares
self.price = price
def cost(self):
return self.shares * self.price
```
接下来,这是一个名为 MyStock 的子类的实现,它继承自 Stock 类:
```python
class MyStock(Stock):
def __init__(self, name, shares, price, description):
super().__init__(name, shares, price)
self.description = description
def cost(self):
return super().cost() * 1.2
def get_description(self):
return self.description
```
在这个示例中,子类 MyStock 重定义了父类 Stock 中的 `__init__` 方法,并添加了一个新的属性 `description`。它还重定义了 `cost` 方法,并调用了 `super().cost()` 来获取父类中的计算结果,并将其乘以 1.2。最后,它还添加了一个名为 `get_description` 的新方法,用于返回 `description` 属性的值。
现在你可以在 MyStock 的实例中调用 Stock 类中的方法和属性,如下所示:
```python
s = MyStock('ABC', 100, 50, 'A description')
print(s.name) # Output: ABC
print(s.shares) # Output: 100
print(s.price) # Output: 50
print(s.cost()) # Output: 6000.0
```
其中,`name`、`shares` 和 `price` 属性都是从父类 Stock 继承来的。`cost` 方法是从父类 Stock 继承来的,但在子类 MyStock 中被重定义。而 `description` 和 `get_description` 属性和方法是在子类 MyStock 中定义的。