Public Interface Interface1
Sub MySub()
End Interface
Public Class Class1
Implements Interface1
Public Sub MySub() Implements Interface1.MySub
MsgBox("您好!")
End Sub
End Class
Public Class Class2
Implements Interface1
Public Sub MySub() Implements Interface1.MySub
MsgBox("巴西世界杯")
End Sub
End Class
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim View1 As Interface1 = New Class1
Dim View2 As Interface1 = New Class2
View1.MySub()
View2.MySub()
End Sub
End Class
我觉得与实例声明没什么两样,却复杂得多。
我觉得优点在于使用相同签名而己。
大家看法如何呢?
------解决方案--------------------
当然。没有必要时用Interface,而在class中就能定义的,当然应该在class中定义。
但是.net是不支持多重继承的。如果一个class有多个父类,你需要抉择哪一个设计为class,其它的就必须坑爹地设计为interface。
------解决方案--------------------
要注意一点,接口的实现往往是调用者做的,而不是类库的编写者。这使得调用者不但可以自定义某个具体的数值(往函数中传参数),还可以自定义某个行为(通过接口或者委托传代码)。