参考“4.2 继承(Inheritance).pdf”,分别实现一个名为Stock的基类,以及一个Stock的子类MyStock,实验:(1)在MyStock的实例中调用Stock类中的方法和属性;(2)在MyStock中添加新的方法和属性;(3)在MyStock中重定义父类中的方法;(4)在MyStock中重定义__init__方法
时间: 2024-02-25 21:57:33 浏览: 71
好的,我来为您演示如何实现这个任务。
首先,我们创建一个名为 Stock 的基类,它包含一个名为 symbol 的属性和两个方法:buy 和 sell。代码如下:
```python
class Stock:
def __init__(self, symbol):
self.symbol = symbol
def buy(self, quantity):
print(f"Bought {quantity} shares of {self.symbol}")
def sell(self, quantity):
print(f"Sold {quantity} shares of {self.symbol}")
```
接下来,我们创建一个名为 MyStock 的子类,它继承自 Stock。在 MyStock 中,我们添加了一个新的属性 name 和一个新的方法 show_info。此外,我们还重定义了 buy 方法,使其输出更详细的信息。最后,我们重定义了 __init__ 方法,使其接受三个参数:symbol、name 和 price。
```python
class MyStock(Stock):
def __init__(self, symbol, name, price):
super().__init__(symbol)
self.name = name
self.price = price
def buy(self, quantity):
print(f"Bought {quantity} shares of {self.symbol} ({self.name}) at {self.price} per share")
def show_info(self):
print(f"Symbol: {self.symbol}, Name: {self.name}, Price: {self.price}")
```
现在,我们可以在 MyStock 的实例中调用 Stock 类中的方法和属性。例如:
```python
mystock = MyStock("AAPL", "Apple Inc.", 120.00)
mystock.buy(10) # 调用 Stock 类中的 buy 方法
mystock.sell(5) # 调用 Stock 类中的 sell 方法
print(mystock.symbol) # 访问 Stock 类中的 symbol 属性
```
输出如下:
```
Bought 10 shares of AAPL (Apple Inc.) at 120.0 per share
Sold 5 shares of AAPL
AAPL
```
我们也可以在 MyStock 中调用新的方法和属性。例如:
```python
mystock.show_info() # 调用 MyStock 中的 show_info 方法
print(mystock.name) # 访问 MyStock 中的 name 属性
```
输出如下:
```
Symbol: AAPL, Name: Apple Inc., Price: 120.0
Apple Inc.
```
我们还可以重定义父类中的方法。在这个例子中,我们重定义了 buy 方法,使其输出更详细的信息。例如:
```python
mystock.buy(10) # 调用 MyStock 中重定义的 buy 方法
```
输出如下:
```
Bought 10 shares of AAPL (Apple Inc.) at 120.0 per share
```
最后,我们还可以重定义 __init__ 方法。在这个例子中,我们将其重定义为接受三个参数:symbol、name 和 price。例如:
```python
mystock = MyStock("AAPL", "Apple Inc.", 120.00)
print(mystock.symbol) # 访问 Stock 类中的 symbol 属性
print(mystock.name) # 访问 MyStock 中的 name 属性
print(mystock.price) # 访问 MyStock 中的 price 属性
```
输出如下:
```
AAPL
Apple Inc.
120.0
```
这就是一个完整的实现,希望对您有所帮助!
阅读全文