抽象类设计一个图形类shape,包含面积的area方法求周长和面积
时间: 2024-03-03 11:47:19 浏览: 84
java图形类与学生类
好的,我可以为您解答这个问题。
首先,我们需要定义一个抽象类 `Shape`,并在其中声明一个抽象方法 `area`,用于计算图形的面积。代码如下:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
```
接下来,我们可以定义具体的图形类,例如正方形、圆形等,并继承于抽象类 `Shape`。这些具体的图形类需要实现 `area` 方法,以计算各自的面积。
以正方形为例,代码如下:
```python
class Square(Shape):
def __init__(self, side):
self.side = side
def area(self):
return self.side ** 2
def perimeter(self):
return 4 * self.side
```
其中,`Square` 类有一个属性 `side` 表示正方形的边长,实现了 `area` 方法和计算周长的 `perimeter` 方法。
其他图形类的实现可以类似地进行,例如圆形的实现如下:
```python
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
```
这样,我们就可以通过多态性来调用不同图形的 `area` 和 `perimeter` 方法,从而计算出图形的面积和周长。例如,对于一个正方形和一个圆形,我们可以这样计算它们的面积和周长:
```python
square = Square(5)
circle = Circle(3)
print("正方形的面积:", square.area())
print("正方形的周长:", square.perimeter())
print("圆形的面积:", circle.area())
print("圆形的周长:", circle.perimeter())
```
输出结果为:
```
正方形的面积: 25
正方形的周长: 20
圆形的面积: 28.26
圆形的周长: 18.84
```
阅读全文