Zachowanie interfejsu jest inne w VB.Net
Interfejs zachowuje się inaczej w Vb.Net. Poniżej znajduje się przykładowy fragment koduIStudent
interfejs ma metodęSayHello
który jest implementowany przez klasęStudent
. Modyfikator Access dlaSayHello
powinno byćPublic
domyślnie. Zmieniając modyfikator Access naPrivate
nie łamie istniejącego kodu i nadal mogę uzyskać dostęp do tej prywatnej metody przy użyciu poniższego kodu
Dim stdnt As IStudent = New Student
stdnt.SayHello()
Modyfikator dostępu określa zakres elementów w klasie, więcej niż członków prywatnych jest dostępnych tylko z klasy, która istnieje. Ale tutaj teoria modyfikatora dostępu, enkapsulacja, jest zepsuta.
Dlaczego .net zaprojektował w ten sposób?Czy koncepcja modyfikatora Access i enkapsulacji jest naprawdę zepsuta?Jak struktura .net wewnętrznie radzi sobie z tą sytuacją?Z góry dziękuję
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