投稿者 みどり  () 投稿日時 2008/5/1 06:46:00
>>1 
 
ありがとう御座います。 
 
拡張性が劣っているというのは Private では更なる継承ではこの機能自体は動作するが、もしこの機能を無効にしたい場合や他のキーに変えたい場合、Overrides できないので必ず元の機能 (Private で書かれた機能) が働いてしまうということですよね。 
 
プログラムはこの継承にかかわらず、ひとつのことを動作させるのに無限通り(大げさ?)の手法があるのでいつも悩みのタネになっています。(ここが面白いところかもしれないのですが) 
拡張性、メンテナンス性を考慮し徐々に進化していく場合が多いのですが、なれない言語では思わぬ失敗をしてしまうのが怖く未だに業務ではVB6に頼っています。(VB6から.Netではこの継承が足かせになってしまって...)  
 
あと同じく中級講座-第2回継承の使用方法のサンプルに、 
Public Class TextBoxEx 
    Inherits TextBox 
 
    Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs) 
 
        'KeyPressイベントを発生させる。 
        MyBase.OnKeyPress(e) 
      : 
      : 
と、OnKeyPress をコールしていますが、この Mybase は基本クラスで基本クラスの OnKeyPress を呼び出しているのですか? 
では、このオーバーライドされた OnKeyPress を呼び出すのは? 
イベントの発生順序について全く理解できていないので、よろしければ教えてください。