写一个程序,定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据要自己输入
时间: 2024-03-14 08:44:47 浏览: 71
好的,我来为您展示一个简单的 Python 程序,满足您的需求:
```python
import math
class Shape:
def area(self):
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Triangle(Shape):
def __init__(self, base, height):
self.base = base
self.height = height
def area(self):
return 0.5 * self.base * self.height
def printArea(shape):
print("面积为:", shape.area())
if __name__ == '__main__':
circle = Circle(float(input("请输入圆的半径:")))
rectangle = Rectangle(float(input("请输入矩形的宽度:")), float(input("请输入矩形的高度:")))
triangle = Triangle(float(input("请输入三角形的底边长:")), float(input("请输入三角形的高度:")))
printArea(circle)
printArea(rectangle)
printArea(triangle)
```
在这个程序中,我们定义了一个抽象基类 `Shape`,它有一个 `area` 方法,但是这个方法没有实现,因为每个形状的计算面积的方式都不一样。接着,我们派生出了三个派生类 `Circle`、`Rectangle` 和 `Triangle`,分别用于表示圆形、矩形和三角形。这三个类都实现了 `Shape` 类中的 `area` 方法,并且使用各自特有的计算面积的公式。最后,我们定义了一个 `printArea` 函数,它接受一个 `Shape` 对象作为参数,并调用它的 `area` 方法来计算面积并打印出来。
在程序的主函数中,我们首先根据用户的输入创建了一个 `Circle`、一个 `Rectangle` 和一个 `Triangle` 对象,并把它们分别传递给 `printArea` 函数进行面积计算和输出。
阅读全文