首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求教一c#有关问题

2012-01-05 
求教一c#问题publicclassA{publicvirtualvoidFun1(inti){Console.WriteLine(i)}publicvoidFun2(Aa){a.Fun

求教一c#问题
public   class   A
        {
                public   virtual   void   Fun1(int   i)
                {
                        Console.WriteLine(i);
                }
                public   void   Fun2(A   a)
                {
                        a.Fun1(1);
                        Fun1(5);
                }
        }
        public   class   B:A
        {
                public   override   void   Fun1(int   i)
                {
                        base.Fun1(i+1);
                }
                public   static   void   Main()
                {
                        B   b   =   new   B();
                        A   a   =   new   A();
                        a.Fun2(b);
                        b.Fun2(a);
                }
        }
写出运行结果,并解释一下运行的由来

[解决办法]
2,5,1,6
a.Fun2(b);调用 b.Fun1(1); 结果2
Fun1(5);是父调用本身方法Fun1(int i)
结果5
b.Fun2(a); 调用的是
a.Fun1(1);调用父类方法结果1
Fun1(5);继承类重写复方法,从下往上覆盖调用 public override void Fun1(int i)
{
base.Fun1(i+1);
}
结果6

[解决办法]
http://community.csdn.net/Expert/topic/5734/5734674.xml?temp=.2942469

看看高手怎么解答的。

热点排行