1.设计抽象基类Shape类 2.由Shape类派生出Circle圆类,Rectangle矩形类,Triangle三角形类 3.用函数printArea分别实现圆类、矩形类、三角形类的面积 4.用基类Shape类的指针输出圆类、矩形类、三角形类的面积
时间: 2024-03-24 16:41:34 浏览: 87
好的,您的问题是让我帮您实现一个面向对象的程序设计。下面是我给出的解答:
```python
import math
# 定义抽象基类
class Shape:
def area(self):
pass
# 定义圆类
class Circle(Shape):
def __init__(self, r):
self.r = r
def area(self):
return math.pi * self.r ** 2
# 定义矩形类
class Rectangle(Shape):
def __init__(self, l, w):
self.l = l
self.w = w
def area(self):
return self.l * self.w
# 定义三角形类
class Triangle(Shape):
def __init__(self, b, h):
self.b = b
self.h = h
def area(self):
return 0.5 * self.b * self.h
# 定义一个打印面积的函数
def printArea(s):
print("面积为:", s.area())
# 测试代码
c = Circle(2)
r = Rectangle(3, 4)
t = Triangle(2, 3)
printArea(c)
printArea(r)
printArea(t)
```
以上代码定义了一个抽象基类Shape,然后派生出了三个实际的类Circle、Rectangle和Triangle。这三个类都实现了Shape的抽象方法area。接着定义了一个printArea函数,用于打印各个形状的面积。
最后在测试代码中创建了一个圆形、一个矩形和一个三角形对象,分别调用printArea函数打印它们的面积。
阅读全文