This short article explains in simple terms what an interface is:
Interfaces Overview
I will submit a practical basic example that perhaps can enlighten you some more. Let's say you have this interface defined:
Interface IContract
Sub MethodA()
End Interface
And this method that take any kind of object implementing this interface as parameter:
Sub RequireObjectWithContract(ByVal x As IContract)
x.MethodA()
End Sub
This method can safely call the MethodA member, because any object supplied to the x parameter must be
of type IContract.
Then you may have these two different classes that implements the interface:
Public Class TestThis
Implements IContract
Public Sub MethodA() Implements IContract.MethodA
MsgBox("TestThis A")
End Sub
End Class
Public Class TestThat
Implements IContract
Public Sub MethodAnything() Implements IContract.MethodA
MsgBox("TestThat A")
End Sub
End Class
Notice that in TestThat class I named the Sub "MethodAnything", but it is still an implementation of the MethodA member of the IContract interface. Normally the implementing member name doesn't differ from the interface member name, I just did this so you can see how the consumer sees this object. As a IContract object the RequireObjectWithContract method calls MethodA regardless.
Now you can create instances of these classes and pass them as arguments to the method:
Dim obj1 As New TestThis
Dim obj2 As New TestThat
RequireObjectWithContract(obj1)
RequireObjectWithContract(obj2)
Back to the orginal question, when it comes to "inheritance" I encourage you to read some more in the first article I linked to. Ignore the parts you don't understand try to get through the text, it really explains these aspects well.