我想问一下,当我多次覆盖时,它是否正确。然而,事实上我有三个问题,我不想创建分开的主题,因为它们都是相关的。谢谢你的所有答案。
第一个问题: 假设我有一个基类,当包含overidable方法,然后所有派生类在层次结构中这样做:
BaseClass1
Overidable SomeMethodX
BaseClass2:BaseClass1
Overides SomeMethodX
BaseClass3:BaseClass2
Overides SomeMethodX
BaseClass4:BaseClass3
Overides SomeMethodX
当我覆盖时,它是否正确。像这样?
第二个问题: 基于上面的例子,我是否必须始终在每个ovveride方法中调用MyBase.SomeMethodX或者只是在我想要的时候?
第3个问题:
考虑下面的例子。当我打电话给MyBase.SpecificTechnologyActions
或者我应该return MyBase.SpecificTechnologyActions
而不是(并请解释原因)时,是否有任何差异。
BaseClass1
Protected Overridable Function SpecificTechnologyActions() As Boolean Implements ITechnologyOperation.SpecificTechnologyActions
Return True
End Function
BaseClass2:BaseClass1
Protected Overrides Function SpecificTechnologyActions() As Boolean
MyBase.SpecificTechnologyActions()
If Not CheckCounters() Then Return False
Return True
End Function
BaseClass3:BaseClass2
Protected Overrides Function SpecificTechnologyActions() As Boolean
MyBase.SpecificTechnologyActions()
If Not CheckNetworkElementsCount() Then Return False
If Not CheckCounters() Then Return False
Return true
End Function