《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 }

 

 

 

posted @ 2020-09-26 22:49  遥想公瑾  阅读(166)  评论(0编辑  收藏  举报