class baseClass{...};
class ChildClass:baseClass
.
..
...
baseClass e = new ChildClass();
为什么要这样初始化,用途?用GetType()还是ChildClass类啊?直接这样ChildClass e = new ClildClass 相比有什么区别?

解决方案 »

  1.   

    把你的例子改成下面这样,你就知道了
    为基类定义多个派生类
    class baseClass{...};
    class ChildClass1:baseClass
    class ChildClass2:baseClass
    class ChildClass3:baseClass在程序中动态选择哪一个
    baseClass e 
    swicth (something)
    {
    case "x":
    e = new ChildClass1();
    break;
    case "y":
    e = new ChildClass2();
    break;
    case "z":
    e = new ChildClass2();
    break;
    }
    e.SomeMethod();如果基类的SomeMethod方法是虚方法,那么在程序中真正执行的就是动态选定的子类的特有的SomeMethod方法,也就实现了多态
      

  2.   

    按照你的说法,在只有一个子类的时候baseClass e = new ChildClass()和baseClass e = new ChildClass()是一样的罗!
      

  3.   

    《c#高级编程第二版》第四章(114页),楼主慢慢看哈就知道了
    --------------
    我进来刚下ebook,也是第二版的,看了好几章,非常喜欢。到书城看2版的书缺和ebook的第二版不一样。所以在ebook的114页并没有介绍看来的确要买本来看看