Vb.Net ではインターフェイスの動作が異なります。IStudent以下は、インターフェイスがSayHelloクラスによって実装されるメソッドを持つサンプル コード スニペットStudentです。のアクセス修飾子は、デフォルトでSayHelloある必要がありPublicます。Access修飾子をに変更しPrivateても既存のコードが壊れることはありませんが、以下のコードを使用してこのプライベートメソッドにアクセスできます
Dim stdnt As IStudent = New Student
stdnt.SayHello()
アクセス修飾子は、クラス内のメンバーのスコープを決定します。さらに、プライベート メンバーは、存在するクラスからのみアクセスできます。しかし、ここで Access Modifier の理論である Encapsulation が壊れています。
- なぜ .net はこのように設計されたのでしょうか?
- Access修飾子とカプセル化の概念は本当に壊れていますか?
- .net フレームワークはこの状況を内部的にどのように処理しますか?
前もって感謝します
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