虚方法
理解:从字面意思来讲,“虚”,可有可无,子类对父类的某种方法的重写,可以重写,也可以不重写。
虚方法,顾名思义(装个13),就是某种方法。
用法:public virtual void TestMethod(){}
必须为public,因为虚拟成员不能是私有的。
-------------------------------------------------------------------------
体现:虚方法是多态特性的一种体现。
-------------------------------------------------------------------------
实例运用:多个儿子继承一个父亲,但是他们有共同于父亲的东西,例如血型,他们都是一样的吧。
但是,他们的个性啊,身材啊,都有所差别了。这时候,应该是调用父亲的血缘,拥有共同的血缘。
1 class DjwFather 2 { 3 public virtual void Method() 4 { 5 Console.WriteLine("我是A型号血"); 6 } 7 } 8 9 class TestSon: DjwFather 10 { 11 public override void Method() 12 { 13 base.Method(); // 这边可以注释,可以不注释;还可以把这个移动到最下面看看运行结果 14 Console.WriteLine("我是儿子"); 15 } 16 } 17 18 class TestDauter : DjwFather 19 { 20 public override void Method() //这个跟上面一个操作 21 { 22 base.Method(); 23 Console.WriteLine("我是女儿"); 24 } 25 } 26 27 class Program 28 { 29 static void Main(string[] args) 30 { 31 TestSon tone = new TestSon(); //实例化 32 tone.Method(); //调儿子 33 TestDauter ttwo = new TestDauter(); //可以把这个注释对比上面。 34 ttwo.Method(); 35 36 Console.ReadKey(); // 可以运行结果定住不动。 37 } 38 }
学习方法:如果你不清楚virtual怎么用,就把上面的代码粘贴复制,反复把注释的代码,不注释,自己查看运行结果,这样更加可以理解virtual怎么用,以及override怎么用。
还有就是把base.Method()移到子类Method内部方法的最下面。
个人认为,这是最好的让你明白的方法,跟你讲再多,不如自己实际敲一遍,运行一下。
推荐初学,先粘贴复制,删掉注释重新运行查看运行结果,尤其注意加base,不加base的结果。