我有3个类继承了另一个名为ParentClass
的类,其中每个类都有以下代码
public void DrawBackground(Graphics e, Rectangle rect)
{
e.FillRectangle(Brushes.Red, rect);
}
在我的主要表单中,我有一个像ParentClass PClass = new OneOfTheThreeClasses
如何从我的表单绘制事件中使用该变量调用这些类的DrawBAckground
方法?
答案 0 :(得分:4)
在ParentClass
上创建抽象或虚拟方法。像这样:
public virtual void DrawBackground(Graphics e, Rectangle rect)
{
// do nothing
}
然后在子类中重写该方法:
public override void DrawBackground(Graphics e, Rectangle rect)
{
e.FillRectangle(Brushes.Red, rect);
}
这个想法是ParentClass
需要定义可以对其执行的操作或其任何多态版本(例如子类型)。它不一定必须提供实现(并且定义可以是抽象的或虚拟的,取决于ParentClass
本身的实现和使用方式),但确实需要以某种方式“知道”该方法以便任何能够在ParentClass
的实例上调用它的东西。