文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>抽象类的案例

抽象类的案例

时间:2011-03-21  来源:hfliyi

抽象类:在类的定义中将关键字abstract放于class之前而创建的类,特点:

    (1):抽象类不能被实例化;(2):抽象类可以包含抽象方法,也可以不包含抽象方法。

抽象方法只能包含方法的定义,但是不能包括实现,方法定义的后面是分号,而不是常规的方法快。

派生类必须实现所有的抽象方法。

抽象方法只能存在于抽象类中或者接口中。

override关键字的作用:(!):用来重写虚拟方法;(2):用来实现抽象方法。

虚拟成员或抽象成员不能是私有的。

例如:

定义一个抽象类ShapeObj,其中包含一个抽象方法area();Circle,Square,Rectangle派生于ShapeObj;

代码如下:

View Code
 1 namespace Test
2 {
3 /// <summary>
4 /// 抽象类
5 /// </summary>
6 abstract class ShapeObj
7 {
8 /// <summary>
9 /// 抽象类的抽象方法 抽象方法不能是私有的;抽象方法只能存在于抽象类中或者接口中;抽象方法不能带方法的实现,只能带方法的声明
10 /// </summary>
11 public abstract void area();
12 }
13 /// <summary>
14 /// Circle继承之ShapeObj抽象类
15 /// </summary>
16 class Circle : ShapeObj
17 {
18 /// <summary>
19 /// Circle实现了抽象类的方法area
20 /// </summary>
21 public override void area()
22 {
23 Console.WriteLine("Circle的area方法");
24
25 }
26 }
27 /// <summary>
28 /// Square继承之ShapeObj抽象类
29 /// </summary>
30 class Square : ShapeObj
31 {
32 /// <summary>
33 /// Square实现了抽象类的方法area
34 /// </summary>
35 public override void area()
36 {
37 Console.WriteLine("Square的area方法");
38
39 }
40
41 }
42 /// <summary>
43 /// Rectangle继承之ShapeObj抽象类
44 /// </summary>
45 class Rectangle : ShapeObj
46 {
47 /// <summary>
48 /// Rectangle实现了抽象类的方法area
49 /// </summary>
50 public override void area()
51 {
52 Console.WriteLine("Rectangle的area方法");
53
54 }
55 }
56 class Program
57 {
58 static void Main(string[] args)
59 {
60 ShapeObj[] shape = new ShapeObj[3];
61 shape[0] = new Circle();
62 shape[1] = new Square();
63 shape[2] = new Rectangle();
64 shape[0].area();
65 shape[1].area();
66 shape[2].area();
67 }
68 }
69 }
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载