2

基本クラスであるdisplaySomething()でメソッドを実行し、さらにdisplaysomething()というサブクラスでメソッドを実行できるようにしたい

これは可能ですか?どうすればこれを達成できますか?

私はこのような基本クラスを持っています

public class baseClass
{
    public void displaySomething()
    {
        MessageBox.Show("Method from base class: display something");
    }
}

私はこのようなサブクラスを持っています

public class subClass : baseClass
{

    public void displaySomething()
    {
        MessageBox.Show("Additional method to run after base class method");
    }

}

このようなボタンクリックイベントがあります。

private void button1_Click(object sender, EventArgs e)
{     
    subClass mySubClass = new subClass();
    mySubClass.displaySomething();
}
4

1 に答える 1

4

次のように、サブクラスのオーバーライド メソッドの実装に、基本クラスのオーバーライドされたメソッドの呼び出しを追加する必要があります。

public void displaySomething() {
    // You can decide to call the base before, after,
    // or in the middle of your new method.
    base.displaySomething();
    MessageBox.Show("Additional method to run after running base class method");
}

宣言されていないため、コードはメソッドをオーバーライドしないことに注意してくださいvirtual。次のように宣言する必要があります。

public class baseClass {
    public virtual void displaySomething() ...
}
public class subClass : baseClass {
    public override void displaySomething() ...
}
于 2013-08-12T00:37:02.360 に答える