我有一个问题,为什么在这段代码中,One()方法是从B类执行而Two()方法是从A类执行的?我知道那是在做铸造,但我不明白这种方式是有效的.顺便说一句,任何有这种技巧的好链接或书籍都将非常感激.比你.
class Program
{
static void Main(string[] args)
{
B b = new B();
A a = (A)b;
a.One();
a.Two();
}
}
public class A
{
public virtual void One()
{
Console.WriteLine("A One");
}
public void Two()
{
Console.WriteLine("A Two");
}
}
public class B : A
{
public override void One()
{
Console.WriteLine("B One");
}
public new void Two()
{
Console.WriteLine("B Two");
}
}
Run Code Online (Sandbox Code Playgroud)