我有一个带有一些方法的抽象类,包括一个抽象方法(Execute())。这个方法在子类中被重写。现在,引发了一个事件(在应用程序的某个地方),并且对于这个事件,有一个处理程序在基类中。在这个处理程序中,我调用Execute。 现在,chilobject的方法被执行。我有点困惑,这是如何在引擎盖下工作的?
答案 0 :(得分:0)
这是运行时多态,也称为dynamic binding。
答案 1 :(得分:0)
考虑到这一点的一种方法是传递信息;在实例方法中调用Execute()
意味着“消息”Execute
被发送到当前对象(即this
)。由于当前对象是子类的实例,因此它会将所接收的消息“Execute()
”视为为该类的所有实例定义的,无论发送该消息的命令在何处写入。
(如果你的问题是它是如何在技术上实现的,那么我很抱歉简单的答案。一般来说,对象的类与其余数据一起存储,这用于查找适当的方法调用,即如何对该对象的某个消息作出反应。)