C#基础-042 抽象类、抽象方法

来源:互联网 发布:vr核心算法 编辑:程序博客网 时间:2024/05/30 20:07

虚拟成员或者抽象成员不能是私有的
抽象方法是用abstract修饰的方法
抽象方法是不能含有方法体的
抽象方法可以是public 和protected
抽象类中可以写抽象方法
抽象方法必须在抽象类中
抽象类中可以写实例方法
抽象类是一个不完全抽象的类
抽象类是无法进行实例化的
这是一个父类,由abstract关键字修饰

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

这是一个矩形类,继承抽象类Shape,重写抽象类中的抽象方法

 class Rectangle : Shape    {          public double a { get; set; }        public double b { get; set; }        public Rectangle(double a, double b)        {            this.a = a;            this.b = b;        }        public override double Area()        {            return a*b;        }        public override double Prime()        {            return (a+b)*2;        }    }

这是一个圆类,继承抽象类Shape,重写抽象类中的抽象方法

 class Circle : Shape    {        public double r { get; set; }        public Circle(double r)        {            this.r = r;        }        public override double Area()        {            return Math.PI*r*r;        }        public override double Prime()        {            return 2*Math.PI*r;        }    }

主程测试:

 static void Main(string[] args)        {            Shape[] shapes = new Shape[4];            shapes[0] = new Rectangle(3,4);            shapes[1] = new Circle(3);            shapes[2] = new Rectangle(3, 4);            shapes[3] = new Circle(4);            for (int i = 0; i < shapes.Length; i++)            {                Console.WriteLine("面积是{0:.00}\t周长是{1:.00}",shapes[i].Area(),shapes[i].Prime());                Console.WriteLine("**************************");            }            Console.ReadKey();        }
原创粉丝点击