欢迎光临

木子屋

标题: 一道.NET虚函数笔试题分析

作者: dnawo

日期: 2012-03-20 09:30 PM

分类: Win编程

内容: 复制内容到剪贴板 程序代码using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
D d = new D();
A a = d;
B b = d;
C c = d;
a.F();
b.F();
c.F();
d.F();
Console.ReadKey();
}
}
class A
{
public virtual void F()
{
Console.WriteLine("A.F ");
}
}
class B : A
{
public override void F()
{
Console.WriteLine("B.F ");
}
}
class C : B
{
public virtual void F()
{
Console.WriteLine("C.F ");
}
}
class D : C
{
public override void F()
{
Console.WriteLine("D.F ");
}
}
}
1.代码分析
C.F()省略了new关键字，C.F()隐藏了B.F()，而D.F()重写了C.F()。
2.结果分析
①.调用a.F()，发现A.F()是一个虚函数，查找发现D.F()不是它的重写，向上找C.F()也不是，直到B.F()才是，输出B.F；
②.调用b.F()，直接输出B.F；
③.调用c.F()，发现C.F()是一个虚函数，查找发现D.F()是它的重写，输出D.F；
④.调用d.F()，直接输出D.F；

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.789 ms

返回

标题: 一道.NET虚函数笔试题分析

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.789 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.820 ms

返回