title: Why the java.net.HttpURLConnection become sun.net.www.protocol.http.HttpURLConnection?
body: <p>I have a code like this:</p>
  
  <pre><code>HttpURLConnection connection = (HttpURLConnection) loginUrl.openConnection();
  connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36");
  connection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
  connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
  connection.setRequestProperty("Connection", "keep-alive");
  connection.setRequestProperty("Referer", "http://www.icourse163.org/member/logout.htm");
  connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  connection.setDoOutput(true);
  
  OutputStream out = connection.getOutputStream();
  </code></pre>
  
  <p>I the connection is a instance of HttpURLConnection, But when I <strong>debug</strong> the code. When the code runs to  <code>OutputStream out = connection.getOutputStream();</code>.I saw that the <code>getOutputStream()</code> is the  <code>sun.net.www.protocol.http.HttpURLConnection</code>'s method. why? </p>