Con un'interfaccia creiamo un contratto. Ogni classe che implementa un interfaccia deve avere alcune funzioni definite nell'interfaccia che implemanta.
Per creare un'interfaccia, si utilizza la parola chiave Interface seguita dal nome dell'interfaccia. Si termina la dichiarazione di interfaccia con una linea End Interface.
Un interfaccia non può essere istanziata direttamente, possono essere istanziate soltanto le classi che la implementano
[ <attributelist> ] [ accessmodifier ] 
Interface name [ ( Of typelist ) ]
    [ Inherits classname ]
    [ statements ]
End Interface       
                        Dove:
Module esempioInterfacce
   Interface IForma
      Private lunghezza As Double
      Private altezza As Double
      
      Public Function calcolaArea() As Double
   End Interface
   
   Class Rettangolo Inherits Forma
      Public Sub New(ByVal lung As Double, ByVal alte As Double)
          lunghezza = lung
          altezza = alte
      End Sub 
      Public Sub impostaLunghezza(ByVal lung As Double)
          lunghezza = lung
      End Sub
      Public Sub impostaAltezza(ByVal alte As Double)
          altezza = alte
      End Sub
      Public Function calcolaArea() As Double Implements IForma.calcolaArea
          Return lunghezza * altezza 
      End Function
   	
   End Class
   
   Class Triangolo Implements IForma
      Public Sub New(ByVal lung As Double, ByVal alte As Double) 
          lunghezza = lung
          altezza = alte
      End Sub 
      Public Sub impostaLunghezza(ByVal lung As Double) Implements IForma.calcolaArea
          lunghezza = lung
      End Sub
      Public Sub impostaAltezza(ByVal alte As Double)
          altezza = alte
      End Sub
      Public Function calcolaArea() As Double
          Return lunghezza * altezza / 2 
      End Function
   	
   End Class
   Sub Main()
   	  
      Dim forma As IForma
      
      forma = New Rettangolo(2.0, 3.0)
      Console.WriteLine("Area del rettangolo : {0}", rect.calcolaArea() )
      forma = New Triangolo(2.0, 3.0)
      Console.WriteLine("Area del triangolo : {0}", tri.calcolaArea() )
   End Sub
End Module 
				Così facendo è possibile dichiarare degli oggetti generici, per poi istanziarli nel tipo che ci interessa a runtime.