标签:ram 定义 ons blog err 类型 引用 函数 实现
1 using System; 2 3 namespace VirtualMethodDemo 4 { 5 public class Super 6 { 7 public virtual string Name 8 { 9 get 10 { 11 return "Li"; 12 } 13 } 14 15 public void A() 16 { 17 Console.WriteLine("这个方法是在 Super 中定义的A!"); 18 } 19 //虚方法 20 21 //抽象方法和虚方法的区别 22 //1. 抽象方法必须在抽象类中,而虚方法可以不。 23 //2. 抽象方法在父类中不能实现,而虚方法可以不。 24 //3. 抽象方法在非抽象子类中必须实现,而虚方法可以不 25 public virtual void B() 26 { 27 Console.WriteLine("这个方法是在 Super 中定义的B!"); 28 } 29 } 30 31 public class Sub : Super 32 { 33 34 public override string Name 35 { 36 get 37 { 38 return "Zhao"; 39 } 40 } 41 //方法替换-在子类中重新实现父类中定义的方法 42 public new void A() 43 { 44 Console.WriteLine("这个方法是在 Sub 中定义的A!"); 45 } 46 47 //虚方法 48 //这个方法可以不写。 49 public override void B() 50 { 51 Console.WriteLine("这个方法是在 Sub 中定义的B!"); 52 } 53 } 54 class Program 55 { 56 static void Main(string[] args) 57 { 58 //使用父类类型引用父类对象 59 Super super = new Super(); 60 super.A(); //调用了父类中定义的方法 61 super.B(); //调用了父类中定义的方法 62 Console.WriteLine(super.Name); 63 64 //使用子类类型引用子类对象 65 Sub sub = new Sub(); 66 sub.A(); //调用了子类中定义的方法 67 sub.B(); //调用了子类中定义的方法 68 Console.WriteLine(sub.Name); 69 70 //使用父类类型引用子类对象 71 Super c = new Sub(); 72 c.A(); //调用了父类中定义的方法 73 c.B(); //调用了子类中定义的方法 74 Console.WriteLine(c.Name); 75 76 //多态--使用父类类型,调用子类中实现的方法 77 } 78 } 79 }
标签:ram 定义 ons blog err 类型 引用 函数 实现
原文地址:http://www.cnblogs.com/stardream19/p/7221426.html