C#——多态与new关键字

多态表示继承类覆盖基类中的virtual(虚拟),abstract(抽象)成员;用关键字override实现。 如下: class Base { public virtual void Print() { console.writeline("This is in Base"); } } class Children:Base { public override void Print() { console.writeline("This is in Children"); } } 当进行如下操作时: Base a=new Children(); a.Print(); 执行的是Children.Print(); 如果需要调用基类中的Print方法,则可以在继承类中调用 base.Print(); new则不然,new是用来隐藏基类中的普通成员,避免出现编译错误 如下: class Base { public void Print() { console.writeline("This is in Base"); } } class Children:Base { public new void Print() { console.writeline("This is in Children"); } } 如果缺少new关键字,则会出现编译错误,但是这并不能实现多态功能,如果进行如下操作: Base a=new Children(); a.Print(); 执行的是Base.Print(); 以上便是个人认为的多态与new关键字之间的差别。
posted on 2011-11-28 22:51  码民  阅读(168)  评论(0)    收藏  举报