设计一个圆形、矩形、三角形等常见图形的类(其中需要继承给定一个抽象类,或者实现一个接口)
时间: 2024-03-21 14:42:58 浏览: 84
java图形类与学生类
好的,我可以为您设计一个常见图形类,如下所示:
```python
from abc import ABC, abstractmethod
import math
# 定义一个图形抽象类
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
# 圆形类
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
def perimeter(self):
return 2 * math.pi * self.radius
# 矩形类
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
def perimeter(self):
return 2 * (self.length + self.width)
# 三角形类
class Triangle(Shape):
def __init__(self, side_a, side_b, side_c):
self.side_a = side_a
self.side_b = side_b
self.side_c = side_c
def area(self):
s = (self.side_a + self.side_b + self.side_c) / 2
return math.sqrt(s * (s - self.side_a) * (s - self.side_b) * (s - self.side_c))
def perimeter(self):
return self.side_a + self.side_b + self.side_c
```
在这里,我们定义了一个抽象类 `Shape`,并为圆形、矩形和三角形类创建了方法,继承 `Shape` 抽象类,并实现了 `area` 和 `perimeter` 方法。这些方法分别用于计算图形的面积和周长。
阅读全文