我希望能够在我的基类中运行该方法,即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();
}
答案 0 :(得分:4)
你需要在子类的重写方法的实现中添加对基类的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() ...
}