"Тени" и "Переопределения" в VB.NET

Затенение, вероятно, не делает oops того, что вы думаете.

Рассмотрим oop следующие классы:

Public MustInherit Class A 
    Public Function fX() As Integer
        Return 0
    End Function
End Class

Public Class B
    Inherits A 
    Public Shadows Function fX() As Integer
        Return 1
    End Function 
End Class

Теперь пользуюсь dotnet ими:

Dim oA As A
Dim oB As New B
oA = oB

Вы, наверное, думаете, что shadows oA и oB - это одно и то же?

Нет.

oA.fx dot-net = 0, а oB.fx = 1

Имхо, это overriding очень опасное поведение, о override котором почти не упоминается oop в документации.

Если бы вы overrides использовали переопределение, они method-overriding были бы такими же.

Таким образом, хотя oo существуют законные применения dotnet теней, скорее всего, все, что method-overriding вы делаете, не относится oo к их числу, и этого следует .net избегать.

.net

vb.net

oop

overriding

shadows

2022-10-20T03:24:23+00:00