写一个程序,定义抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、 Triangle(三角形),用一个函数求printArea分别输出以上三者的面积,3个图形的数据在定义对象 时给定
时间: 2024-03-24 14:37:01 浏览: 73
声明抽象基类
好的,以下是程序的实现:
```python
from abc import ABC, abstractmethod
class Shape(ABC): # 定义抽象基类Shape
@abstractmethod
def area(self):
pass
class Circle(Shape): # 派生出Circle类
def __init__(self, r):
self.r = r
def area(self):
return 3.14 * self.r * self.r
class Rectangle(Shape): # 派生出Rectangle类
def __init__(self, l, w):
self.l = l
self.w = w
def area(self):
return self.l * self.w
class Triangle(Shape): # 派生出Triangle类
def __init__(self, b, h):
self.b = b
self.h = h
def area(self):
return 0.5 * self.b * self.h
def printArea(shape): # 定义函数printArea
print("面积为:", shape.area())
# 测试
c = Circle(5)
r = Rectangle(4, 6)
t = Triangle(3, 4)
printArea(c) # 输出圆形的面积
printArea(r) # 输出矩形的面积
printArea(t) # 输出三角形的面积
```
输出结果为:
```
面积为: 78.5
面积为: 24
面积为: 6.0
```
阅读全文