BC140 KiKi设计类继承

描述

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

输入描述:

输入三行,

第一行为矩形的长和宽,

第二行为圆的半径,

第三行为正方形的边长。

输出描述:

三行,分别是矩形、圆、正方形的面积。

示例1

输入:

7 8

10

5

输出:

56

314

25

解答:

class Shape(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y


class Rectangle(Shape):
    """矩形的长和宽"""

    def GetArea(self):
        """求面积"""
        return self.x * self.y


class Circle(Shape):
    """圆的半径"""

    def __init__(self, r):
        self.r = r
        self.area = 3.14 * self.r ** 2


    def GetArea(self):
        """求面积"""
        if self.area - int(self.area) == 0:  # 如果整数则输出整数,否则输出浮点数
            return int(self.area)
        else:
            return self.area


class Square(Rectangle):
    """正方形Square类,定义各类并测试"""

    def __init__(self, a):
        self.a = a

    def GetArea(self):
        return self.a ** 2


x, y = map(float, input().split())
r = float(input())
a = float(input())

rec = Rectangle(x, y)
print(rec.GetArea())
cir = Circle(r)
print(cir.GetArea())
squ = Square(a)
print(squ.GetArea())

解析:

1.定义类,然后实例化。题目的示例显示整数,但没有说不允许浮点数,故加入判断。

20211205

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值