jicheng.cs
上传用户:yiyuerguo
上传日期:2014-09-27
资源大小:3781k
文件大小:1k
源码类别:

C#编程

开发平台:

Others

  1. /*
  2.  * Created by SharpDevelop.
  3.  * User: hyperly
  4.  * Date: 2005-5-22
  5.  * Time: 0:03
  6.  * 
  7.  * To change this template use Tools | Options | Coding | Edit Standard Headers.
  8.  */
  9.  
  10. using System;
  11. class myApp 
  12. {
  13. public class A
  14. {
  15. public virtual void Fun1(int i) 
  16. {
  17. Console.WriteLine(i);
  18. }
  19.  
  20. public void Fun2(A a) 
  21. {
  22. a.Fun1(1);
  23. Fun1(5);
  24. }
  25. }
  26. public class B: A 
  27. {
  28. public override void Fun1(int i) 
  29. {
  30. base.Fun1(i+1);
  31. }
  32.  
  33.  
  34. }
  35. public static void Main() 
  36. {
  37. B b=new B();
  38. A a=new A();
  39. // a.Fun2(b)是指先执行A类下的Fun2函数
  40. //Fun2函数下第一步是a.Fun1(1);
  41. //但实际参数是a也就是执行a.Fun1(1);
  42. //那b.Fun1(1)函数是在B类当中重载过的
  43. //其内容是base.Fun1(i+1);
  44. //也就是执行Fun1(1+1)
  45. //结果是2
  46. //然后执行Fun1(5) 
  47. //结果是5
  48. a.Fun2(b);
  49. // b.Fun2(a)是指先执行B类下的Fun2函数
  50. // 可B类本身就没有Fun2函数 只有执行它的基类的Fun2函数
  51. //但实际参数是a也就是执行a.Fun1(1);
  52. //结果是1
  53. //然后执行Fun1(5) 注意这里的Fun1(5)实际上是b.Fun1(5)
  54. //实际执行的结果是base.Fun1(5+1);
  55. //结果是6
  56. b.Fun2(a);
  57. Console.ReadLine();
  58. }
  59. }