在基类中运行方法,另外在子类中运行方法

本文关键字:运行 方法 子类 基类 | 更新日期: 2023-09-27 18:27:11

我希望能够在我的基类中运行方法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();
}

在基类中运行方法,另外在子类中运行方法

在实现子类的重写方法时,需要添加基类的overriden方法的调用,如下所示:

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() ...
}