第 7次python 作业 1.编程实现以下功能: (1)定义一个抽象类Shape,在抽象类Shape 中定义求面积和周长的抽象方法 getArea() getPerimeter()。 (2) 定义继承Shape的2个子类 Triangle、Circle,并在这2个子类中重写父类Shape的2个方 法getArea()、getPerimeter()。 (3)创建Triangle、Circle的对象,对2个子类中方法进行调用调试。
时间: 2023-11-27 16:49:45 浏览: 250
下面是代码实现:
```python
from abc import ABC, abstractmethod
import math
class Shape(ABC):
@abstractmethod
def getArea(self):
pass
@abstractmethod
def getPerimeter(self):
pass
class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getArea(self):
s = (self.a + self.b + self.c) / 2
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))
def getPerimeter(self):
return self.a + self.b + self.c
class Circle(Shape):
def __init__(self, r):
self.r = r
def getArea(self):
return math.pi * self.r ** 2
def getPerimeter(self):
return 2 * math.pi * self.r
# 创建对象并调用方法
t = Triangle(3, 4, 5)
print("Triangle Area:", t.getArea())
print("Triangle Perimeter:", t.getPerimeter())
c = Circle(5)
print("Circle Area:", c.getArea())
print("Circle Perimeter:", c.getPerimeter())
```
输出结果为:
```
Triangle Area: 6.0
Triangle Perimeter: 12
Circle Area: 78.53981633974483
Circle Perimeter: 31.41592653589793
```
解释一下代码:
首先我们定义了一个抽象类 `Shape`,其中包含了求面积和周长的抽象方法 `getArea()` 和 `getPerimeter()`。
然后我们定义了两个子类 `Triangle` 和 `Circle`,并且它们继承自 `Shape` 父类。在这两个子类中,我们重写了父类的两个方法,并且分别实现了三角形和圆形的面积和周长的计算公式。
最后我们创建了 `Triangle` 和 `Circle` 的对象,并且调用了它们的方法,输出了面积和周长的结果。
阅读全文