• 关于#Shape#的问题,如何解决?


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 睬叽一个 2024-06-10 15:25 采纳率: 57.1% 浏览 3 首页/ 编程语言 / 关于#Shape#的问题,如何解决? c#开发语言 声明一个形状类Shape,在此基础上派生出矩形类Rectangle和圆类Circle。要求Shape为抽象类并且包含计算周长和面积的抽象方法,Rectangle类和Circle类也包含对基类中计算周长和面积的抽象方法的重载方法,最后在Main方法中利用一个Shape类型的数组引用所有的Rectangle类和Circle类的实例,并调用计算周长和面积的方法。提示如下: 1、抽象类Shape中只要有抽象方法Perimeter和Area 2、Rectangle派生自Shape,应包含私有字段w、h,带参构造函数,方法Perimeter和Area 3、Circle类派生自Shape,应包含私有字段r,带参构造函数,方法Perimeter和Area 4、Shape类型的数组中每个元素类型的获得:数组名[i].Gettype().Name 5、输出显示如下图: 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 阿里嘎多学长 2024-06-10 15:33
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      根据你的需求,我将提供一个C#语言的示例代码,实现抽象类Shape以及派生类RectangleCircle,并在Main方法中演示如何使用这些类。

      首先,定义抽象类Shape

      public abstract class Shape
      {
          public abstract double Perimeter();
          public abstract double Area();
      }
      

      接着,定义派生类Rectangle

      public class Rectangle : Shape
      {
          private double width;
          private double height;
      
          public Rectangle(double width, double height)
          {
              this.width = width;
              this.height = height;
          }
      
          public override double Perimeter()
          {
              return 2 * (width + height);
          }
      
          public override double Area()
          {
              return width * height;
          }
      }
      

      然后,定义派生类Circle

      public class Circle : Shape
      {
          private double radius;
      
          public Circle(double radius)
          {
              this.radius = radius;
          }
      
          public override double Perimeter()
          {
              return 2 * Math.PI * radius;
          }
      
          public override double Area()
          {
              return Math.PI * radius * radius;
          }
      }
      

      最后,在Main方法中实现数组的使用和输出:

      public static void Main(string[] args)
      {
          Shape[] shapes = new Shape[]
          {
              new Rectangle(3, 4),
              new Circle(5),
              new Rectangle(10, 5),
              new Circle(7)
          };
      
          foreach (Shape shape in shapes)
          {
              Console.WriteLine($"{shape.GetType().Name}: 周长为:{shape.Perimeter():F2}, 面积为:{shape.Area():F2}");
          }
      }
      

      这段代码将创建一个包含RectangleCircle实例的数组,并使用GetType().Name来获取每个实例的类型名称,然后调用PerimeterArea方法,并按照指定格式输出结果。

      请注意,输出格式中的F2指定了浮点数的格式化,保留两位小数。

      至于参考资料,你可以查看以下链接:

      这些链接提供了C#中抽象类、继承和数学函数使用的官方文档。

      展开全部

      评论 编辑记录
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      Python--使用selenium通过chromedriver调用谷歌浏览器
      Linux学习笔记13 - 进程间通信(IPC)(四)
      101. 对称二叉树
      数组——螺旋矩阵II
      【ACWing】160. 匹配统计
      (173)FPGA约束:单周期时序分析或默认时序分析
      【故障公告】攻击式巨量并发请求再次来袭,引发博客站点故障
      lv5 嵌入式开发-2 exec函数族
      代码优雅之道——Java如何判空
      一文讲清楚redis的线程池jedis
    • 原文地址:https://ask.csdn.net/questions/8116492