我最近一直在研究类继承,并且不断遇到这段特定的代码。创建“派生类”类型的对象
public class Foo {
public bool DoSomething()
{
return false;
}
}
public class Bar : Foo {
public new bool DoSomething()
{
return true;
}
}
public cass Test {
public static void Main() {
Foo test = new Bar();
Console.WriteLine (test.DoSomething());
}
}
什么这里让我困惑的是,如果是我,我会按类型酒吧酒吧创建的实例...
Bar test = new Bar();
我不明白为什么它会被创建的方式它在代码中。
您寻求的答案在于BrokenGlass的答案和Justin的答案混合在多态性中。不幸的是,这样的语义没有简单的答案。您需要熟悉工厂模式,IoC或依赖注入。工厂模式可能是最简单的一种。没有经验,你需要一本书来打破复杂的细节。首先设计模式是一个很好的选择。 –