1、父类中有方法a,添加virtua修饰符可声明为虚方法,在子类中可以用override声明后重写方法a。
2、父类中有方法a,在子类中可以有new修饰符声明后隐藏父类方法。
子类重写方法后,对于子类的任何实例,父类的原方法a都已经不存在。
子类隐藏父类方法后,父类的原方法仍然存在,当子类的实例的类型转为父类时,调用的方法a即为原来的方法。
1 //重写方法 2 class A 3 { 4 public virtual void a() 5 { 6 Console.WriteLine(‘CLASS is A‘); 7 } 8 } 9 10 class B:A 11 { 12 public override void a() 13 { 14 Console.WriteLine(‘CLASS is B‘); 15 } 16 } 17 18 class client 19 { 20 static void main() 21 { 22 B b=new B(); 23 A a=b; 24 25 a.a(); 26 b.a(); 27 } 28 } 29 30 /*输出 31 CLASS IS B 32 CLASS IS B 33 */ 34 35 36 //隐藏方法 37 class A 38 { 39 public void a() 40 { 41 Console.WriteLine(‘CLASS is A‘); 42 } 43 } 44 45 class B:A 46 { 47 public new void a() 48 { 49 Console.WriteLine(‘CLASS is B‘); 50 } 51 } 52 53 class client 54 { 55 static void main() 56 { 57 B b=new B(); 58 A a=b; 59 60 a.a(); 61 b.a(); 62 } 63 } 64 65 /*输出 66 CLASS IS A 67 CLASS IS B 68 */
时间: 2024-10-05 07:30:34