①编写程序:声明抽象基类Shape,由它派生类出3个派生类:Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。
时间: 2024-03-17 16:40:16 浏览: 93
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
好的,以下是代码实现:
```python
from abc import ABC, abstractmethod
import math
# 定义抽象基类Shape
class Shape(ABC):
@abstractmethod
def area(self):
pass
# 定义圆形类
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return round(math.pi * self.radius ** 2, 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
# 定义函数printArea,用于输出面积
def printArea(shape):
print("面积为:", shape.area())
# 创建对象并调用printArea函数输出面积
c = Circle(5)
printArea(c)
r = Rectangle(3, 4)
printArea(r)
t = Triangle(3, 4)
printArea(t)
```
输出结果为:
```
面积为: 78.54
面积为: 12
面积为: 6.0
```
其中,圆形的面积计算公式为 $\pi r^2$,矩形的面积为 $w \times h$,三角形的面积为 $0.5 \times b \times h$。
阅读全文