在基类的可覆盖函数中删除或注释掉代码是标准做法吗?

时间:2013-05-03 04:07:07

标签: vb.net oop

我今天花了45分钟与我的老师争论这件事,这对我来说似乎很愚蠢,但也许她只是没有解释清楚。

当你创建一个带有覆盖它的函数的子类时,她试图告诉我,我应该注释掉或删除父类的可覆盖函数中的代码块。

这有什么意义吗?

3 个答案:

答案 0 :(得分:1)

绝对不是。仅仅因为一个类重写它并不意味着从基类继承的其他类也会这样做。因此,在这些情况下,您肯定希望基类功能保留在那里。

然后有点dotNET已经做了(子类需要调用基类的函数来重用已存在的功能)

答案 1 :(得分:1)

  

当你创建一个带有覆盖它的函数的子类时,她试图告诉我,我应该注释掉或删除父类的可覆盖函数中的代码块。

Lol wut?

  • 如果覆盖方法需要调用可覆盖的方法怎么办?
  • 如果添加了另一个不覆盖可覆盖方法的子类,该怎么办?
  • 如果有人想从自己的(非抽象)类调用overridable怎么办?

这是一个非常糟糕的主意。

答案 2 :(得分:0)

我希望你不要在这里说VB6。 VB6不支持真正的OOP。在VB.NET或C#中,答案肯定不是。通常情况下,子类的重写函数需要在执行其操作之前或之后调用基类的功能。所以我不明白为什么你的老师会把它作为一般规则。