用Python分别编写两个类:Circle和Rectangle,他们均继承自抽象类Dimension。请在两个子类中重写其面积方法,分别计算圆和矩形的面积。Pi=3.14 输入:一行,一个或两个数 输出:一行,若输入一个数,则输出圆的面积;若输入两个数,则输出矩形的面积。
时间: 2023-12-14 07:38:43 浏览: 104
以下是代码实现:
```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}".format(circle.area()))
else:
length, width = map(float, input_str)
rectangle = Rectangle(length, width)
print("{:.2f}".format(rectangle.area()))
```
首先定义一个抽象类Dimension,其中含有一个抽象方法area,用于计算面积。然后分别定义了Circle和Rectangle两个类,均继承自Dimension。在子类中重写了area方法,分别计算圆和矩形的面积。
最后根据输入参数的个数,判断需要计算圆的面积还是矩形的面积,并输出结果。注意需要将结果保留两位小数,可以使用 "{:.2f}".format() 方法进行格式化输出。
阅读全文