KiKi设计类继承

374 阅读1分钟
描述
KiKi理解了继承可以让代码重用,他现在定义一个基类shape,私有数据为坐标点x,y,  由它派生Rectangle类和Circle类,它们都有成员函数GetArea()求面积。派生类Rectangle类有数据:矩形的长和宽;派生类Circle类有数据:圆的半径。Rectangle类又派生正方形Square类,定义各类并测试。输入三组数据,分别是矩形的长和宽、圆的半径、正方形的边长,输出三组数据,分别是矩形、圆、正方形的面积。圆周率按3.14计算。
输入描述:
输入三行,
第一行为矩形的长和宽,
第二行为圆的半径,
第三行为正方形的边长。
输出描述:
三行,分别是矩形、圆、正方形的面积。

image.png

class shape():
    def __init__(self,x1,y1):
        self.x=x1
        self.y=y1
class Rectangle(shape):
    def area(self):
        return self.x*self.y
class circle(shape):
    def area(self):
        pi=3.14
        return pi*self.x*self.x
class square(Rectangle):
    def area(self):
        return self.x**2

x,y=list(map(int,input().split()))
r=int(input())
b=int(input())
a=Rectangle(x, y)
print(a.area())
a2=circle(r, r)
s=a2.area()
if s-int(s)==0:
    s=int(s)
    print(s)
else:
    print(round(s,2))  # 尤其要注意这里,一位小数,两位小数

a3=square(b, b)
print(a3.area())