Поведение интерфейса в VB.Net различно

Интерфейс ведет себя по-разному в Vb.Net. Ниже приведен пример кода, гдеIStudent интерфейс имеет методSayHello который реализуется классомStudent, Модификатор доступа дляSayHello должно бытьPublic по умолчанию. Изменяя модификатор доступа наPrivate не нарушает существующий код, и все же я могу получить доступ к этому приватному методу, используя приведенный ниже код

Dim stdnt As IStudent = New Student
stdnt.SayHello()

Модификатор доступа определяет область действия членов в классе, более того, частные члены доступны только из существующего класса. Но вот теория Access Modifier, Encapsulation нарушена.

Почему .net спроектировал таким образом?Неужели концепция модификатора Access и инкапсуляции действительно нарушена?Как .net framework внутренне справится с этой ситуацией?

заранее спасибо

Module Module1

   Sub Main()
        Dim stdnt As IStudent = New Student
        stdnt.Name = "vimal"
        stdnt.SayHello()
   End Sub

End Module

Public Interface IStudent

   Property Name As String

   Sub SayHello()

End Interface

Public Class Student
   Implements IStudent

   Private Property Name As String Implements IStudent.Name

   Private Sub SayHello() Implements IStudent.SayHello
       Console.WriteLine("Say Hello!")
   End Sub

End Class

Ответы на вопрос(5)

Ваш ответ на вопрос