抽象类shape(c )
时间: 2023-10-12 09:11:32 浏览: 70
抽象类 Shape 的定义如下:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
```
这里用到了 Python 内置的 ABC (Abstract Base Class) 模块,通过 `@abstractmethod` 装饰器来声明抽象方法。抽象方法是没有实现的方法,需要子类去实现。在这里,`Shape` 类有两个抽象方法 `area` 和 `perimeter`,分别用于计算形状的面积和周长。
当一个类继承自抽象类时,必须实现所有的抽象方法,否则这个类也会成为抽象类。下面是一个继承自 `Shape` 的具体类 `Rectangle` 的例子:
```python
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return 2 * (self.width + self.height)
```
`Rectangle` 类实现了 `Shape` 类中的两个抽象方法,并且增加了自己的属性和方法。这里我们重写了 `__init__` 方法,用于初始化矩形的宽和高,然后实现了 `area` 和 `perimeter` 方法,分别用于计算矩形的面积和周长。
阅读全文