写一个程序,定义抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、 Triangle(三角形),用一个函数求printArea分别输出以上三者的面积,3个图形的数据在定义对象 时给定。
时间: 2024-03-05 20:51:32 浏览: 132
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
好的,这是一个简单的示例程序:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * 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("Area:", shape.area())
circle = Circle(5)
rectangle = Rectangle(3, 4)
triangle = Triangle(2, 5)
printArea(circle)
printArea(rectangle)
printArea(triangle)
```
这个程序定义了一个抽象基类 `Shape`,它包含了一个抽象方法 `area`,用于计算形状的面积。
然后,它定义了三个派生类:`Circle`、`Rectangle` 和 `Triangle`,它们分别表示圆形、矩形和三角形。每个派生类都实现了 `area` 方法以计算面积。
最后,程序定义了一个函数 `printArea`,它接受一个 `Shape` 对象作为参数,并输出该对象的面积。
在程序的主函数中,我们创建了一个圆形、一个矩形和一个三角形对象,并分别调用了 `printArea` 函数来输出它们的面积。
阅读全文