for*_*orX 2 vb.net inheritance interface
我有一个接口的元素.我想使用正确的功能.但由于函数(IF)的实现,它总是使用基类函数
接口
Public Interface I
Function F() As Boolean
End Interface
Run Code Online (Sandbox Code Playgroud)
接口I的基类实现
Public MustInherit Class B
Implements I
Public Overridable Function F() As Boolean Implements I.F
Return True
End Function
End Class
Run Code Online (Sandbox Code Playgroud)
使用基类的类将用作对象
Public Class C1
Inherits B
Public Overloads Function F() As Boolean
Return False
End Function
End Class
Public Class C2
Inherits B
End Class
Run Code Online (Sandbox Code Playgroud)
样品
Sub Main()
Dim x As I
x = New C1
If x.F Then
Console.WriteLine("c1 = true")
Else
Console.WriteLine("c1 = false")
End If
x = New C2
If x.F Then
Console.WriteLine("c2 = true")
Else
Console.WriteLine("c2 = false")
End If
Console.ReadLine()
End Sub
Run Code Online (Sandbox Code Playgroud)
结果:
c1 = true
c2 = true
Run Code Online (Sandbox Code Playgroud)
由于他自己的功能"F",c1应该是假的.
你不想重载它,你想要覆盖它:
Public Overrides Function F() As Boolean
Return False
End Function
Run Code Online (Sandbox Code Playgroud)
重载是指您想拥有不同的参数列表.