首页 / C# / C#抽象类和抽象方法的实现
C#抽象类和抽象方法的实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#抽象类和抽象方法的实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2636字,纯文字阅读大概需要4分钟。
内容图文
抽象类和抽象方法的实现
抽象类是一种特殊的基础类,并不与具体的事物联系。抽象类的定义使用关键字abstract。
在类的层次结构中,并没有“图形”这样的具体事物,所以可以将“图形”定义为抽象类,派生出“圆形”和“四边形”这样一些可以具体实例化的普通类,需要注意的是,抽象类不能被实例化,他只能作为其他类的基础类。将Shape类定位为抽象类代码如下:
public absract class shape
{
.....
}
在抽象类中也可以使用关键字absract定义抽象方法,要求所有的派生非抽象类都要重载实现抽象方法,引入抽象方法的原因在于抽象类本身是一种抽象概念,有的方法并不需要具体实现,而是留下来让派生类重载实现。Shape类中GetArea方法本身并无具体意义,而只有到了派生类Cricle和Reatangular才可以计算具体面积。
抽象方法为:
public absract double GetArea();
则派生类重载实现为:
public override double GetArea();
{
......
}
下面我们用具体的工程案例讲解:---------------------------------------->
首先我们在工程文件中添加一个类 Shape类-------Shape.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Application27 7 { 8 // 定义基类Shape 9 public abstract class Shape 10 { 11 protected string Color; 12 public Shape() { ;} //构造函数13public Shape(string Color) { this.Color = Color; } 14publicstring GetColor() { return Color; } 15publicabstractdouble GetArea(); //抽象类16 } 17//定义Cirle类,从Shape类中派生18publicclass Circle : Shape 19 { 20privatedouble Radius; 21public Circle(string Color, double Radius) 22 { 23this.Color = Color; 24this.Radius = Radius; 25 } 26publicoverridedouble GetArea() 27 { 28return System.Math.PI * Radius * Radius; 29 } 3031 } 32//派生类Rectangular,从Shape类中派生33publicclass Retangular : Shape 34 { 35protecteddouble Length, Width; 36public Retangular(string Color, double Length, double Width) 37 { 38this.Color = Color; 39this.Length = Length; 40this.Width = Width; 41 } 42publicoverridedouble GetArea() 43 { 44return (Length*Width); 45 } 4647publicdouble PerimeterIs() 48 { 49return (2 * (Length * Width)); 5051 }54 } 55//派生类Square,从Retangular类中派生56publicclass Square : Retangular 57 { 58public Square(string Color,double Side):base(Color,Side,Side) { ;} 596061 } 65 }
这里我们用了abstract定以Shape , 即抽象类
然后我们在主程序中设置
-----------------------Program.cs------------------------------------
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Application27 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 Circle Cir = new Circle("Orange", 3.0); 13 Console.WriteLine("Circle area is{1}",Cir.GetColor(),Cir.GetArea()); 14 Retangular Rect = new Retangular("Red",13.0,2.0); 15 Console.WriteLine("Retangular Color is {0},Rectangualr area is {1},Rectangualr Perimeter is {2}", 16 Rect.GetColor(),Rect.GetArea(),Rect.PerimeterIs()); 17 Square Squ = new Square("qreen",5.0); 18 Console.WriteLine("Square Color is {0},Square Area is {1},Square Perimeter is {2}",Squ.GetColor(),Squ.GetArea(),Squ.PerimeterIs()); 19 } 20 } 21 }
结果显示如下:
原文:https://www.cnblogs.com/CCMMBN/p/8719319.html
内容总结
以上是互联网集市为您收集整理的C#抽象类和抽象方法的实现全部内容,希望文章能够帮你解决C#抽象类和抽象方法的实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。