码迷,mamicode.com
首页 > 其他好文 > 详细

多态override

时间:2014-06-18 08:39:47      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   ext   color   

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Sln0405
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Chinese c1 = new Chinese();
13             c1.SayHello();
14 
15             Person p1 = c1;
16             p1.SayHello();//p1是Person类型的变量
17             //先去看Person.SayHello,发现是virtual
18             //所以去看p1指向的对象的实际类型Chinese有没有
19             //override覆盖SayHello,如果有则调用实际类型的方法
20 
21             //string s = p1.ToString();//输出类的全名
22             //(*)虚方法表(VMT)
23             object obj = p1;
24             //obj指向的是Chinese类型的对象,
25             //调用ToString()这时候发现object的ToString是virtual方法
26             //所以看Chinese有没有override ToString方法,如果有则调用
27             //Chinese的ToString,如果Chinese没有override ToString方法
28             //则看Chinese的父类有没有override ToString方法……
29             Console.WriteLine(obj.ToString());
30             Console.ReadKey();
31         }
32     }
33 
34     class Person
35     {
36         public virtual void SayHello()
37         {
38             Console.WriteLine("person");
39         }
40 
41         public override string ToString()
42         {
43             //return base.ToString();
44             return "我是一个人";
45         }
46     }
47 
48 
49     class Chinese : Person
50     {
51         public override void SayHello()
52         {
53             Console.WriteLine("chinese");
54         }
55     }
56 
57     class BJ : Chinese
58     {
59         public override void SayHello()
60         {
61             base.SayHello();
62         }
63     }
64 
65 }

 

多态override,布布扣,bubuko.com

多态override

标签:style   class   blog   code   ext   color   

原文地址:http://www.cnblogs.com/skyl/p/3793452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!