计算机C#问题,基类中定义了虚方法,派生类中重写了此方法,以下程序有几点不明白

classA{publicvoidF1(){Console.Write("AA");}publicvirtualvoidF2(){Console.Write("BB");... class A
{ public void F1( ) { Console.Write("AA "); }
public virtual void F2() { Console.Write("BB "); }
}
class B : A
{ new public void F1( ) { Console.Write("CC "); }
public override void F2( ) { Console.Write("DD "); }
}
class Test
{ static void Main()
{ B b = new B();
A a = b; //不明白此处的意义
a.F1();
b.F1();
a.F2(); //不明白此处的执行过程
b.F2();
Console.Read();
}
}
展开
 我来答
深十粥E
2016-05-09
知道答主
回答量:29
采纳率:0%
帮助的人:6.5万
展开全部
A a = b 这个是将子类的对象赋值给父类对象,父类可以代表子类行使权力;
a.F2();这个调用的是子类的方法;
为什么会出现这种现象是因为:在面向对象里面虚方法也是实现多态的一种;
对于虚方法父类可以有方法体,可以有具体的实现代码,但是如果子类继承了并重写了,那么这无论是子类还是父类在调用这个方法的时候都只是调用重写的方法;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式