接口在 Vb.Net 中的行为不同。下面是一个示例代码片段,其中IStudent
interface 有一个SayHello
由 class 实现的方法Student
。默认情况下,访问修饰符SayHello
应该是Public
。通过将访问修饰符更改Private
为不会破坏现有代码,我仍然可以使用以下代码访问此私有方法
Dim stdnt As IStudent = New Student
stdnt.SayHello()
访问修饰符决定了类中成员的范围,更多的私有成员只能从存在的类中访问。但是这里访问修饰符,封装的理论被打破了。
- 为什么.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