定义一个抽象类 Shape,它包含两个抽象方法:计算面积的mianJi()方法,计算周长 的 zhouChang()方法,从Shape 类派生出圆形Circle类和矩形 Rect类,分别使用构造函 数初始化Circle 类的半径 r和Rect 类的长a宽 b,这两个类都使用mianJi()方法计算面 积,用zhouChang()方法计算周长。编写程序计算半径为10cm的圆形面积和长为10cm宽 为6cm的矩形周长。
时间: 2024-02-21 17:59:50 浏览: 100
好的,这是一个经典的面向对象编程问题,我可以帮你解决。以下是代码实现:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def mianJi(self):
pass
@abstractmethod
def zhouChang(self):
pass
class Circle(Shape):
def __init__(self, r):
self.r = r
def mianJi(self):
return 3.14 * self.r**2
def zhouChang(self):
return 2 * 3.14 * self.r
class Rect(Shape):
def __init__(self, a, b):
self.a = a
self.b = b
def mianJi(self):
return self.a * self.b
def zhouChang(self):
return 2 * (self.a + self.b)
r = 10
c = Circle(r)
print("半径为{}cm的圆形面积为{}cm²".format(r, c.mianJi()))
a = 10
b = 6
rect = Rect(a, b)
print("长为{}cm宽为{}cm的矩形周长为{}cm".format(a, b, rect.zhouChang()))
```
输出结果:
```
半径为10cm的圆形面积为314.0cm²
长为10cm宽为6cm的矩形周长为32cm
```
阅读全文