在派生类中调用MyBase关键字

时间:2017-10-17 19:41:36

标签: vb.net

我想问一下,当我多次覆盖时,它是否正确。然而,事实上我有三个问题,我不想创建分开的主题,因为它们都是相关的。谢谢你的所有答案。

第一个问题: 假设我有一个基类,当包含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

0 个答案:

没有答案
相关问题