.请分别编写两个类:Circle和Rectangle,他们均继承自抽象类Dimension。请在两个子类中重写其面积方法,分别计算圆和矩形的面积。Pi=3.14 输入:一行,一个或两个数 输出:一行,若输入一个数,则输出圆的面积;若输入两个数,则输出矩形的面积。
时间: 2023-12-14 11:39:32 浏览: 44
下面是对应的代码实现:
```python
from abc import ABC, abstractmethod
class Dimension(ABC):
@abstractmethod
def area(self):
pass
class Circle(Dimension):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * (self.radius ** 2)
class Rectangle(Dimension):
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
input_str = input().strip().split()
if len(input_str) == 1:
# 输入一个数,计算圆的面积
radius = float(input_str[0])
circle = Circle(radius)
print('%.2f' % circle.area())
elif len(input_str) == 2:
# 输入两个数,计算矩形的面积
length, width = map(float, input_str)
rectangle = Rectangle(length, width)
print('%.2f' % rectangle.area())
else:
print('输入错误!')
```
以上代码中,我们先定义了一个抽象类 Dimension,它包含一个抽象方法 area,表示计算面积。然后我们根据题目要求,分别定义了两个类 Circle 和 Rectangle,它们都继承自 Dimension 抽象类,并且重写了 area 方法,分别用于计算圆和矩形的面积。
最后根据输入的参数个数,判断要计算圆的面积还是矩形的面积,并输出结果。注意输出结果保留两位小数。