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