2301_78517308 2023-06-04 00:20 采纳率: 75%
浏览 21
已结题

python面向对象的继承

设计
一个名为Graph的类表示图形,这个类包含
(1)一个 getArea() 计算面积的方法
(2)一个 getPerimeter(),计算周长的方法
(3) 定义一个info() 输出矩形长、宽、周长、面积的方法
一个名为 Rectangle 的矩形类来表示矩形。这个类继承Graph包含:
(1) 宽度和高度:width、height
(2) 构造方法:传入width,height
(3) 定义一个 getArea() 计算面积的方法
(4) 定义一个 getPerimeter(),计算周长的方法
(5) 定义一个info() 输出矩形长、宽、周长、面积的方法
一个名为 Circle 的圆形类来表示圆形。这个类继承Graph包含:
(1)半径:radius
(2) 构造方法:传入radius
(3) 定义一个 getArea() 计算面积的方法
(4) 定义一个 getPerimeter(),计算周长的方法
(5) 定义一个info() 输出圆形半径、周长、面积的方法
一个名为countandPrint的函数,参数为inst,功能是
(1)调用inst.info()输出传入对象的信息
测试数据:R1(90,80),C1(120),

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-06-04 01:46
    关注
    class Graph:
        def __init__(self, length, width):
            self.length = length
            self.width = width
            
        def getArea(self):
            area = self.length * self.width
            return area
    
        def getPerimeter(self):
            perimeter = 2 * (self.length + self.width)
            return perimeter
    
        def info(self):
            area = self.getArea()
            perimeter = self.getPerimeter()
            print("Length: ", self.length)
            print("Width: ", self.width)
            print("Perimeter: ", perimeter)
            print("Area: ", area)
    class Rectangle(Graph):
        def __init__(self, width, height):
            super().__init__(width, height)
            self.width = width
            self.height = height
    
        def getArea(self):
            area = self.width * self.height
            return area
    
        def getPerimeter(self):
            perimeter = 2 * (self.width + self.height)
            return perimeter
    
        def info(self):
            area = self.getArea()
            perimeter = self.getPerimeter()
            print("Width: ", self.width)
            print("Height: ", self.height)
            print("Perimeter: ", perimeter)
            print("Area: ", area)
    class Circle(Graph):
        def __init__(self, radius):
            super().__init__(radius, radius)
            self.radius = radius
    
        def getArea(self):
            area = 3.1416 * self.radius ** 2
            return area
    
        def getPerimeter(self):
            perimeter = 2 * 3.1416 * self.radius
            return perimeter
    
        def info(self):
            area = self.getArea()
            perimeter = self.getPerimeter()
            print("Radius: ", self.radius)
            print("Perimeter: ", perimeter)
            print("Area: ", area)
    
    def countandPrint(inst):
        inst.info()
    
    R1 = Rectangle(90, 80)
    C1 = Circle(120)
    
    countandPrint(R1)
    countandPrint(C1)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 请采纳用户回复 6月4日
  • 创建了问题 6月4日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!