1、 定义Shape抽象类,包含私有属性color,创建构造器为color赋值; 包含计算周长的方法celPerimeter();定义子类Triangle,包含三边; 定义子类Circle,包含半径radius;子类分别实现父类的计算周长功能。
时间: 2024-05-04 14:17:38 浏览: 117
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
好的,我可以帮你实现这个要求。
首先,我们定义 Shape 抽象类:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
def __init__(self, color):
self.color = color
@abstractmethod
def calcPerimeter(self):
pass
```
这里使用了 Python 的 ABC(Abstract Base Classes)模块来定义抽象类。Shape 类包含一个私有属性 color 和一个抽象方法 calcPerimeter(),该方法在子类中实现。
接下来,我们定义 Triangle 和 Circle 两个子类:
```python
import math
class Triangle(Shape):
def __init__(self, color, a, b, c):
super().__init__(color)
self.a = a
self.b = b
self.c = c
def calcPerimeter(self):
return self.a + self.b + self.c
class Circle(Shape):
def __init__(self, color, radius):
super().__init__(color)
self.radius = radius
def calcPerimeter(self):
return 2 * math.pi * self.radius
```
Triangle 类包含三个边长 a、b、c,Circle 类包含一个半径 radius。这两个子类都实现了 calcPerimeter() 方法,分别计算三角形和圆形的周长。
现在我们可以创建对象并调用它们的方法:
```python
t = Triangle("red", 3, 4, 5)
print("Triangle perimeter:", t.calcPerimeter())
c = Circle("blue", 2)
print("Circle perimeter:", c.calcPerimeter())
```
输出:
```
Triangle perimeter: 12
Circle perimeter: 12.566370614359172
```
这样就完成了这个要求的实现。
阅读全文