覆盖基类的抽象方法

时间:2010-04-11 03:41:31

标签: c# oop

我有一个带有一些方法的抽象类,包括一个抽象方法(Execute())。这个方法在子类中被重写。现在,引发了一个事件(在应用程序的某个地方),并且对于这个事件,有一个处理程序在基类中。在这个处理程序中,我调用Execute。 现在,chilobject的方法被执行。我有点困惑,这是如何在引擎盖下工作的?

2 个答案:

答案 0 :(得分:0)

这是运行时多态,也称为dynamic binding

答案 1 :(得分:0)

考虑到这一点的一种方法是传递信息;在实例方法中调用Execute()意味着“消息”Execute被发送到当前对象(即this)。由于当前对象是子类的实例,因此它会将所接收的消息“Execute()”视为为该类的所有实例定义的,无论发送该消息的命令在何处写入。

(如果你的问题是它是如何在技术上实现的,那么我很抱歉简单的答案。一般来说,对象的类与其余数据一起存储,这用于查找适当的方法调用,即如何对该对象的某个消息作出反应。)