2017-02-27 85 views
2

我有一個接口的元素。我想使用正確的功能。 但由於功能的器具(IF),它總是使用基本類功能使用基類的接口我接口要求繼承基類

Public MustInherit Class B 
    Implements I 

    Public Overridable Function F() As Boolean Implements I.F 
     Return True 
    End Function 
End Class 

類的

接口

Public Interface I 
    Function F() As Boolean 
End Interface 

基類實現和意志作爲對象使用

Public Class C1 
    Inherits B 
    Public Overloads Function F() As Boolean 
     Return False 
    End Function 
End Class 

Public Class C2 
    Inherits B  
End Class 

樣品

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 

結果:

c1 = true 
c2 = true 

C1應該因爲自己的函數 「F」 的是假的。

回答

6

你不想超載,你需要對其進行重寫:

Public Overrides Function F() As Boolean 
    Return False 
End Function 

超載是當你希望有不同的參數列表。