睡包睡不着 2021-10-24 22:13 采纳率: 0%
浏览 83

C#的类,接口及多态 实验中的一个题目,求解答

(1)在项目中创建一个接口,名称为Body,内有一个名为area的方法,该方法的返回值类型为float。
(2)创建类,名称为Cube,实现Body接口,并有一个float型的成员变量,名称为a,定义Cube类有一个参数的构造方法,该方法可以为a赋初值。
(3)在Cube类中实现area方法,计算立方体面积,公式为面积=6aa,将计算结果作为area方法的返回值。
(4)使用同样方法创建Ball类,实现Body接口,有一个float的成员变量,名称为r,定义Ball类有一个参数的构造方法,该方法可以为r赋初值。
(5)在Ball类中实现area方法,计算球体面积,公式为面积=43.14r*r,将计算结果作为area方法的返回值。
(6)创建主类MainClass,创建主函数main。
(7)在主类中创建public static float getArea(Body b){}方法,该方法可以返回参数对象的表面积。
(8)在主类中分别创建一个Cube类和Ball类的对象,使用构造方法对成员a和r任意复值,使用getArea方法得到两个对象的表面积,并输出至控制台。

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-10-24 22:26
    关注

    题主要的代码如下,有帮助麻烦点个【采纳该答案】,谢谢~~有其他问题可以继续交流~

    img

    using System;
    namespace ConsoleApp1
    {
        public interface Body
        {
            float area();
        }
        public class Cube : Body
        {
            public float a { get; set; }
            public Cube(float a) { this.a = a; }
            public float area()
            {
                return 6 * a * a;
            }
        }
        public class Ball : Body
        {
            public float r { get; set; }
            public Ball(float r) { this.r = r; }
            public float area() { return 4 * 3.14f * r * r; }
        }
        
        class MainClass
        {
            static void Main(string[] args)
            {
                var cube = new Cube(5);
                Console.WriteLine(getArea(cube));
                var ball = new Ball(5);
                Console.WriteLine(getArea(ball));
                Console.ReadKey();
            }
            public static float getArea(Body b) { return b.area(); }
        }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月24日