本帖最后由 yongchurui 于 2012-12-27 14:51:36 编辑

解决方案 »

  1.   


    class BaseClass 

        public virtual  BaseClass getCopy1() { return new BaseClass(); }
        public virtual BaseClass getCopy2() { return new BaseClass(); }
    }
    class NewClass : BaseClass
    {
        public override BaseClass getCopy1() { return new NewClass(); }
        public new NewClass getCopy2() { return new NewClass(); }
    }
            BaseClass b = new BaseClass();
            Response.Write("b:" + b.GetType().Name + "<br/>");
            var b_copy1 = b.getCopy1();
            Response.Write("b_copy1:" + b_copy1.GetType().Name + "<br/>");
            var b_copy2 = b.getCopy2();
            Response.Write("b_copy2:" + b_copy2.GetType().Name + "<br/>");        var n = new NewClass();
            Response.Write("n:" +n .GetType().Name + "<br/>");
            var n_copy1 = n.getCopy1();
            Response.Write("n_copy1:" +n_copy1 .GetType().Name + "<br/>");
            var n_copy2 = n.getCopy2();
            Response.Write("n_copy2:" + n_copy2.GetType().Name + "<br/>");        BaseClass nb = new NewClass();
            Response.Write("nb:" + nb.GetType().Name + "<br/>");
            var nb_copy1 = nb.getCopy1();
            Response.Write("nb_copy1:" + nb_copy1.GetType().Name + "<br/>");
            var nb_copy2 = nb.getCopy2();
            Response.Write("nb_copy2:" + nb_copy2.GetType().Name + "<br/>");
    结果:
    b:BaseClass
    b_copy1:BaseClass
    b_copy2:BaseClass
    n:NewClass
    n_copy1:NewClass
    n_copy2:NewClass
    nb:NewClass
    nb_copy1:NewClass
    nb_copy2:BaseClass不知你是否这个意思?