注册 登录
编程论坛 C# 论坛

各位帮帮忙,我不是很懂重写这块,在此感激不尽

雪月 发布于 2013-11-28 14:26, 604 次点击
public class shap
    {
        public double area;
        public virtual double Area(double S)
        {
            this.area = S;
            return S;
        }
        public double ShowArea()
        {
            Console.WriteLine("面积为{0}",area);
           return area;
        }
        
    }
    public class circle : shap
    {
        double radius;
        public const double PI = 3.1416;
        public circle(double S, double R)
            : base(S)
        {
            // this.area=S;
             this.radius = R;

        }
        public override double Area(double radius)
        {
            double area = PI * radius * radius;
            return Console.ReadLine(area);
 
        }
    }
    public class rectangle : shap
    {
        double length;
        double width;
        public rectangle(double S, double L, double W)
            : base(S)
        {
            this.area=S;
            this.length = L;
            this.width = W;

        }
        public override double Area(double length,double width)
        {
            double area = length * width;
            return Console.WriteLine(area)  ;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            circle S1=new circle(4);
            S1.Area();

            rectangle  S2= new rectangle (4.6);
            S2.Area();
            
        }
    }
}
4 回复
#2
雪月2013-11-28 20:39
class Program
    {

        public class shap
        {
            public double area;
            public virtual double Area(double S)
            {
                this.area = S;
                return S;
            }
            public double ShowArea()
            {
                Console.WriteLine("面积为{0}", area);
                return area;
            }
            public virtual double Area()
            {
                return area;
            }
            public shap(double d)
            {
                area = d;
            }
        }
        public class circle : shap          //子类
        {
            double radius;
            public const double PI = 3.1416;
            public circle(double S, double R)    //继承
                : base(S)
            {
                this.area=S;
                this.radius = R;

            }
            public override double Area()
            {
                double area = PI * radius * radius;
                //return Console.ReadLine(area);
                return area;
            }
        }
        public class rectangle : shap        //子类
        {
            double length;
            double width;
            public rectangle(double S, double L, double W)   //继承
                : base(S)
            {
                this.area = S;
                this.length = L;
                this.width = W;

            }
            public override double Area()  //重写
            {
                double area = length * width;
                //return Console.WriteLine(area);
                return area;
            }
        }

        static void Main(string[] args)
        {

            //circle S1 = new circle(" ", 4);//
            circle S1 = new circle(2, 4);
            S1.Area();

            //rectangle S2 = new rectangle(" ", 4, 6);
            rectangle S2 = new rectangle(0, 4, 6);

            S2.Area();
            Console.ReadKey();
        }
    }
}
#3
lclc3092013-12-03 18:14
什么错误?是不是没有输出!你弄两个double型都变量接受area,然后输出应该行!
#4
黄占林2014-01-25 01:37
public double ShowArea()
            {
                Console.WriteLine("面积为{0}", area);
                return area;
            }
---------------------------------------------------------------------
public void double ShowArea()
            {
                Console.WriteLine("面积为{0}", area);
            }
#5
有容就大2014-01-26 23:15
有什么具体的问题吗》
1