这里定义了一个基本几何图形的抽象类Shape,然后定义了它的派生类Circle(圆形)、Square(正方形)和Triangle(三角形)。要求通过抽象方法和方法重载来计算各种图形的面积和周长。
时间: 2024-02-04 17:03:54 浏览: 131
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
好的,我了解了你的问题。以下是一个可以实现你所描述的类和方法的示例代码:
```python
# 定义抽象类Shape
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
# 定义Circle(圆形)类,继承 Shape 类
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
def perimeter(self):
return 2 * 3.14 * self.radius
# 定义Square(正方形)类,继承 Shape 类
class Square(Shape):
def __init__(self, side):
self.side = side
def area(self):
return self.side ** 2
def perimeter(self):
return 4 * self.side
# 定义Triangle(三角形)类,继承 Shape 类
class Triangle(Shape):
def __init__(self, side1, side2, side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
def area(self):
s = (self.side1 + self.side2 + self.side3) / 2
return (s * (s - self.side1) * (s - self.side2) * (s - self.side3)) ** 0.5
def perimeter(self):
return self.side1 + self.side2 + self.side3
```
在上面的代码中,我们定义了一个抽象类 Shape,并在其中定义了两个抽象方法 area 和 perimeter。然后,我们分别定义了 Circle、Square 和 Triangle 三个类,并分别实现了这两个抽象方法。在 Circle 类中,我们使用了 math 模块中的 pi 常量来计算圆的周长。在 Square 类中,我们直接计算正方形的面积和周长。在 Triangle 类中,我们使用海伦公式来计算三角形的面积。
这样,我们就可以根据需要创建 Circle、Square 和 Triangle 对象,并调用它们的 area 和 perimeter 方法来计算它们的面积和周长了。
阅读全文