写一个程序,定义抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、 Triangle(三角形),用一个函数求printArea分别输出以上三者的面积,3个图形的数据在定义对象 时给定
时间: 2024-03-24 21:37:01 浏览: 85
好的,以下是程序的实现:
```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
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)