覆盖函数仍会在子方法之前调用父类

时间:2017-10-04 02:25:30

标签: haxe

我是Haxe的新手,只打算部署网络。

所以我有一个类A,其方法名称为doThis()。在课程B上,我继承了课程A。我在课程doThis()上覆盖了B。当我检查调试器时,正在调用类A doThis(),然后调用类B doThis()

我的直觉是,我已经明确地覆盖了这些方法,我可以通过super.doThis()来调用父代的唯一方法,但似乎它会自动执行此操作。我只希望doThis()的版本为B。不是A' s。

有没有想过它为什么会这样?我想我在这里遗漏了一些东西。

谢谢!

3 个答案:

答案 0 :(得分:5)

如果没有任何进一步的信息,我打赌你在doThis 定义 上有调试器断点的好钱,当你打算放置它们时在doThis 调用 中(在函数体内)。

其他可能(但不太可能)的原因:

  • 宏功能正在插入super.doThis()来电
  • 修改后的Haxe编译器或JS生成器正在发出super.doThis()调用。

答案 1 :(得分:2)

除非您覆盖的函数是构造函数new,否则调用父(超级)函数是可选的。此外,您可以通过调整super.doThis()时调整父函数的时间来规定。

为了说明,这里是仅在try.haxe上运行子类函数的代码。听起来你可能已经尝试过类似的方法,所以请确保你没有遗漏一些你可能不知道调用超级函数的代码。

答案 2 :(得分:0)

我认为你做的是正确的事 或许将一些println添加到父函数和子函数中,以确保您描述的是实际发生的事情。

换句话说,调试器不只是和你一起玩。