title: How can an interface expose a public property/method that does not exist in the implementing class?
body: <p>Question in short:
  public class DbContext : IDisposable, IObjectContextAdapter</p>
  
  <p>DbContext implements IObjectContextAdapter. IObjectContextAdapter has a single property,</p>
  
  <pre><code>public interface IObjectContextAdapter
  {
      // Summary:
      //     Gets the object context.
      ObjectContext ObjectContext { get; }
  }
  </code></pre>
  
  <p>however, I cannot find this property in DbContext; it simple is not there in metadata code. Only way to access it, is to cast DbContext as IObjectContextAdapter. </p>
  
  <p>I do not understand - I would've thought that public properties of an interface are exposed by the implementing classes regardless of being cast into the interface or not. I feel like I'm missing something big here...</p>