none
派生类重写基类的方法,为什么还要重新调用基类的方法? RRS feed

  • 问题

  • toolstriprenderer类的onrenderarrow方法绘制ToolStripItem上的一个箭头,现在我从toolstriprenderer继承了一个新的类,重写onrenderarrow,需要自己重新绘制箭头,如果在重写onrenderarrow方法时,调用了基类的onrenderarrow方法,在使用这个类时将会出现两个绘制的箭头——一个是自绘的,还有一个是基类绘制的。这就显得很难看~所以我干脆不呼叫基类的onrenderarrow方法。

    可是msdn上说:

    在派生类中重写onrenderarrow方法时,一定要调用基类的onrenderarrow方法,以便已注册的委托对事件进行接收。

    这句话就没看懂了~为什么这样委托就接受不到事件呢。。。这个不是也会被继承下来吗?

    如果我就是不调用基类的onrenderarrow方法,会有什么问题?

    像这样,如果调用基类方法就会干扰派生类方法的情况,要如何解决?

     

    2010年6月29日 5:36

答案

  • 你好!

         基类的方法会做很多基础性的工作,不调用很可能发生很诡异的情况!所以一定要调用!


    周雪峰
    • 已标记为答案 cheerego 2010年6月29日 14:14
    2010年6月29日 5:56
    版主

全部回复

  • 你好!

         基类的方法会做很多基础性的工作,不调用很可能发生很诡异的情况!所以一定要调用!


    周雪峰
    • 已标记为答案 cheerego 2010年6月29日 14:14
    2010年6月29日 5:56
    版主
  • 那么就是不能屏蔽掉基类 onrenderarrow 方法绘制的箭头了?我想自己绘制箭头来着。
    2010年6月29日 13:07
  • 你好!

         你可以试试在上面添加个Panel,把那个箭头盖住!

     


    周雪峰
    2010年6月29日 13:14
    版主