zoukankan      html  css  js  c++  java
  • C#使用多态求方形面积周长和圆的面积周长

      class class1
        {
            public static void Main(string[] args)
            {
                //使用多态求矩形面积与周长和圆的面积与周长
                Shape cl = new Circle(5);
                double clarea = cl.GetArea();
                double clpar = cl.GetPerimeter();
                Console.WriteLine("这个圆的面积是{0},周长是{1}", Math.Round(clarea, 2), Math.Round(clpar, 2));
    
                Shape sq = new Square(5, 10);
                double sqarea = sq.GetArea();
                double sqpar = sq.GetPerimeter();
                Console.WriteLine("这个方形的面积是{0},周长是{1}", Math.Round(sqarea, 2), Math.Round(sqpar, 2));
                Console.ReadKey();
            }
    
    
        }
    
    
    //声明一个抽像类
        public abstract class Shape
        {
            public abstract double GetArea();
            public abstract double GetPerimeter();
        }
    
    
    class Circle:Shape
        {
            private double _r;
    
            public double R
            {
                get {
                    return _r;
                }
                set {
                    _r = value;
                }
            }
    
            public Circle(double r)
            {
                this.R = r;
            }
            public override double GetArea()
            {
                return Math.PI * this.R * this.R;
            }
    
            public override double GetPerimeter()
            {
                return 2 * Math.PI * this.R;
            }
        }
    
    
    
     class Square : Shape
        {
            private double _height;
            private double _width;
    
            public double Height
            {
                get
                {
                    return _height;
                }
                set
                {
                    _height = value;
                }
            }
    
            public double Width
            {
                get {
                    return _width;
                }
                set {
                    _width = value;
                }
            }
            public Square(double w, double h)
            {
                this.Height = h;
                this.Width = w;
            }
            public override double GetArea()
            {
                return this.Width * this.Height;
            }
    
            public override double GetPerimeter()
            {
                return (this.Width + this.Height) * 2;
            }
        }
  • 相关阅读:
    (转)堆与堆排序
    Cantor的数表
    Sticks(poj 1011)
    Square(hdu 1511)
    Fire Net(hdu 1045)
    Lake Counting(poj 2386)
    Ants (POJ 1852)
    A + B Problem II 大数加法
    深入理解计算机系统第二版家庭作业2.66
    C++ 队列queque/deque
  • 原文地址:https://www.cnblogs.com/zywf/p/4518249.html
Copyright © 2011-2022 走看看