title: Where is the code which is called when you call getApplicationContext()?
body: <p>I have looked into Android <a href="http://android.googlesource.com">sources</a> just out of interest. What I found is that <code>Context</code> is an abstract class with abstract method: </p>
  
  <pre><code>public abstract Context getApplicationContext();
  </code></pre>
  
  <p>The <code>ContextWrapper.java</code> extends <code>Context.java</code> which led to implementation of <code>getApplicationContext()</code> method:</p>
  
  <pre><code> @Override
      public Context getApplicationContext() {
          return mBase.getApplicationContext();
      }
  </code></pre>
  
  <p>But <code>mBase</code> is reference to an object of type <code>Context</code> which is initialized in <code>ContextWrapper</code>'s constructor:</p>
  
  <pre><code>public ContextWrapper(Context base) {
      mBase = base;
  }
  </code></pre>
  
  <p>So this <code>mBase</code> reference refers to <code>abstract</code> class? 
  Well, I just don't understand where is the code which is executed when you call <code>getApplicationContext()</code> from your <code>Activity</code>.</p>