new & Override

1new    Override - picacure - picacure的博客using System;
 2new    Override - picacure - picacure的博客using System.Collections.Generic;
 3new    Override - picacure - picacure的博客using System.Text;
 4new    Override - picacure - picacure的博客
 5new    Override - picacure - picacure的博客namespace ConsoleApplication1
 6new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客{
 7new    Override - picacure - picacure的博客    class Program
 8new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客    new    Override - picacure - picacure的博客{
 9new    Override - picacure - picacure的博客
10new    Override - picacure - picacure的博客        static void Main(string[] args)
11new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客        new    Override - picacure - picacure的博客{
12new    Override - picacure - picacure的博客            baseClass bc;
13new    Override - picacure - picacure的博客            class1 ct1 = new class1();
14new    Override - picacure - picacure的博客
15new    Override - picacure - picacure的博客            class2 ct2 = new class2();
16new    Override - picacure - picacure的博客
17new    Override - picacure - picacure的博客            ct1.prinf();
18new    Override - picacure - picacure的博客            bc = ct1;
19new    Override - picacure - picacure的博客            bc.prinf();
20new    Override - picacure - picacure的博客
21new    Override - picacure - picacure的博客            Console.WriteLine("---------------------");
22new    Override - picacure - picacure的博客            
23new    Override - picacure - picacure的博客            ct2.prinf();
24new    Override - picacure - picacure的博客            bc = ct2;
25new    Override - picacure - picacure的博客            bc.prinf();
26new    Override - picacure - picacure的博客
27new    Override - picacure - picacure的博客        }
28new    Override - picacure - picacure的博客    }
29new    Override - picacure - picacure的博客
30new    Override - picacure - picacure的博客    public class baseClass
31new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客    new    Override - picacure - picacure的博客{
32new    Override - picacure - picacure的博客        private int index = 0;
33new    Override - picacure - picacure的博客
34new    Override - picacure - picacure的博客        public virtual void prinf()
35new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客        new    Override - picacure - picacure的博客{
36new    Override - picacure - picacure的博客
37new    Override - picacure - picacure的博客            Console.WriteLine("这是基类虚方法" + index.ToString());
38new    Override - picacure - picacure的博客
39new    Override - picacure - picacure的博客        }
40new    Override - picacure - picacure的博客
41new    Override - picacure - picacure的博客    }
42new    Override - picacure - picacure的博客
43new    Override - picacure - picacure的博客    public class class1 : baseClass
44new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客    new    Override - picacure - picacure的博客{
45new    Override - picacure - picacure的博客        private int index = 1;
46new    Override - picacure - picacure的博客
47new    Override - picacure - picacure的博客        public override void prinf()
48new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客        new    Override - picacure - picacure的博客{
49new    Override - picacure - picacure的博客
50new    Override - picacure - picacure的博客            Console.WriteLine("这是子类新的方法" + index.ToString());
51new    Override - picacure - picacure的博客
52new    Override - picacure - picacure的博客        }
53new    Override - picacure - picacure的博客
54new    Override - picacure - picacure的博客    }
55new    Override - picacure - picacure的博客
56new    Override - picacure - picacure的博客    public class class2 : baseClass
57new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客    new    Override - picacure - picacure的博客{
58new    Override - picacure - picacure的博客        private int index = 2;
59new    Override - picacure - picacure的博客
60new    Override - picacure - picacure的博客        public new void prinf()
61new    Override - picacure - picacure的博客new    Override - picacure - picacure的博客        new    Override - picacure - picacure的博客{
62new    Override - picacure - picacure的博客
63new    Override - picacure - picacure的博客            Console.WriteLine("这是子类新的方法" + index.ToString());
64new    Override - picacure - picacure的博客
65new    Override - picacure - picacure的博客        }
66new    Override - picacure - picacure的博客
67new    Override - picacure - picacure的博客    }
68new    Override - picacure - picacure的博客
69new    Override - picacure - picacure的博客
70new    Override - picacure - picacure的博客}
71new    Override - picacure - picacure的博客
运行结果:
这是子类新的方法1
这是子类新的方法1
---------------------
这是子类新的方法2
这是基类虚方法0

如上
使用override重写printf方法,通过父类引用一样只能看到重写后的方法;
如果使用new隐藏printf方法,父类子类引用各自对应方法;

override重写虚方法,那么就只剩下重写以后的方法;
new隐藏基类的方法,那么基类的方法和当前类的方法同时存在只是被隐藏了;

真想弄些实际应用的例子,想好了补上.
posted @ 2010-09-19 19:32  jiangC  阅读(146)  评论(0编辑  收藏  举报