定义一个Geometry类,里面有实例方法area。由Geometry派生出Rectangle类和Circle类,分别在各自类中实现area方法。定义一个普通函数computeArea。调用该函数,当传入不同类的实例对象时,函数可以计算出对应实例对象的面积
时间: 2024-02-29 14:52:16 浏览: 63
vgg16特征提取_成功_利用vGG16_VGG16_vgg16特征提取_vgg16图像分类_图像分类_
5星 · 资源好评率100%
下面是代码实现:
```python
import math
class Geometry:
def area(self):
pass
class Rectangle(Geometry):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Geometry):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
def computeArea(obj):
return obj.area()
# 测试代码
rect = Rectangle(5, 10)
circle = Circle(3)
print(computeArea(rect)) # 输出 50
print(computeArea(circle)) # 输出 28.274333882308138
```
在上面的代码中,我们定义了一个 `Geometry` 类和它的子类 `Rectangle` 和 `Circle`,它们都实现了 `area` 方法。我们还定义了一个普通函数 `computeArea`,它接收一个 `Geometry` 类型的实例对象,并调用该对象的 `area` 方法来计算面积。最后我们创建了一个 `Rectangle` 类型的实例对象 `rect` 和一个 `Circle` 类型的实例对象 `circle`,并分别传递给 `computeArea` 函数来计算它们的面积。
阅读全文