设计一个抽象类Shape,定义抽象方法getArea()和getPerimeter(),分别表示形状的面积和周长。然后设计两个子类Rectangle和Circle,分别继承Shape,并实现抽象方法
时间: 2024-05-05 17:18:32 浏览: 165
getArea()和getPerimeter()。
好的,这是一个面向对象的编程问题。抽象类Shape定义了getArea()和getPerimeter()两个抽象方法,分别表示形状的面积和周长,而Rectangle和Circle则是Shape的子类,必须实现这两个方法。
以下是示例代码:
```python
from abc import ABC, abstractmethod
import math
class Shape(ABC):
@abstractmethod
def getArea(self):
pass
@abstractmethod
def getPerimeter(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
def getPerimeter(self):
return 2 * (self.width + self.height)
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def getArea(self):
return math.pi * self.radius * self.radius
def getPerimeter(self):
return 2 * math.pi * self.radius
```
这些类定义了一个抽象类Shape和两个具体的形状子类Rectangle和Circle。Rectangle和Circle分别实现了Shape所定义的抽象方法getArea()和getPerimeter(),并根据其具体的形状进行了计算。
阅读全文