设计一个基类Shape,包括:
名为sName的属性(图形名称);
构造函数应对sName属性进行初始化。
设计Shape的继承类Rectangle, 包括:
长,宽两个属性;
构造函数调用Shape的构造函数,并初始化长,宽两个属性;
getArea()成员函数计算并返回矩形面积。
设计Shape的继承类Circle,包括:
半径属性;
构造函数调用Shape的构造函数,并初始化半径属性;
getArea()成员函数计算并返回圆形面积。
注意:请注意阅读测试样例程序以理解题目对类的接口的要求。
类接口定义:
classShape: ...
classRectangle(Shape): ...
classCircle(Shape): ...
裁判测试程序样例:
s1 = Shape("shape0")
s = input() #矩形名称w = float(input()) #矩形宽度h = float(input()) #矩形高度r1 = Rectangle(s,w,h)
s = input() #圆的名称r = float(input()) #圆的半径c1 = Circle(s,r)
print(s1.sName)
print("矩形%s面积: %.2f" % (r1.sName,r1.getArea()))
print("圆形%s面积: %.2f" % (c1.sName,c1.getArea()))
输入样例:
Jupyter
12.1
9.9
Moon
3.3
输出样例:
shape0
矩形Jupyter面积: 119.79
圆形Moon面积: 34.21
答案之一:
import math #导入math模块
class Shape: #定义一个Shape类
def __init__(self,sName):
self.sName = sName
self.__width = None
self.__height = None
self.__r = None
class Rectangle(Shape):
def __init__(self,sName,width,height):
self.sName = sName
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
class Circle(Shape):
def __init__(self,sName,r):
self.sName = sName
self.r = r
def getArea(self):
return self.r ** 2 * math.pi
执行结果