《C#入门详解》刘老师 重写与多态
重写与多态
一、隐藏与多态
1 /*================多态==============*/ 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace 重写与多态 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 Vehicle v = new Car(); 15 v.Run();//编译结果Car is running 16 17 /*==========多态,当我们用一个父类的变量引用一个子类的实例,调用了一个被重写了的成员的时候,总是能调到继承链上最新的版本,这就是多态。==== 在函数方法上(重写与隐藏的发生条件,函数成员,可见,签名一致)调用到的是跟这个实例类型相关的最新版本======*/ 18 } 19 } 20 21 class Vehicle 22 { 23 public virtual void Run() 24 { 25 Console.WriteLine("I'm running"); 26 } 27 } 28 29 class Car : Vehicle 30 { 31 public override void Run() 32 { 33 Console.WriteLine("Car is running"); 34 } 35 } 36 37 38 } 39 40 /*===============隐藏================*/ 41 42 43 44 using System; 45 using System.Collections.Generic; 46 using System.Linq; 47 using System.Text; 48 using System.Threading.Tasks; 49 50 namespace 重写与多态 51 { 52 class Program 53 { 54 static void Main(string[] args) 55 { 56 Vehicle v = new Car(); 57 v.Run();//编译结果 I'm running 58 } 59 } 60 61 class Vehicle 62 { 63 public void Run() 64 { 65 Console.WriteLine("I'm running"); 66 } 67 } 68 69 class Car : Vehicle 70 { 71 public void Run() 72 { 73 Console.WriteLine("Car is running"); 74 } 75 } 76 77 78 }