title: implement an interface with a private method in vb.net
body: <p>I was kind of shocked by this. Could someone explain why this works? A good example of when to use it would also be nice.</p>
  
  <pre><code>Public Interface IFoo
    Sub DoIt()
  End Interface
  
  Public Class Bar
    Implements IFoo
  
    Private DoIt() implements IFoo.DoIt
  End Class
  
  ...
  
  Dim b as new Bar()
  b.DoIt() 'error
  CType(b, IFoo).DoIt() 'no error
  </code></pre>