将URL对象转换为HttpURLConnection

Rob*_*rto -2 java url android casting httpurlconnection

我是java新手,我还在处理基本主题.通过调用URL.openConnection()并将结果转换为HttpURLConnection,我无法理解以下行在获取新的HttpURLConnection时如何工作.

URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
Run Code Online (Sandbox Code Playgroud)

如果URL类不从HttpURLConnection继承,如何使用URL对象实例化HttpURLConnection?

根据java API参考,这是两个类的层次结构:

Java.lang.Object⇒java.net.URLConnection⇒java.net.HttpURLConnection

java.lang.Object⇒java.net.URL

据我所知,铸件的使用方式如下:

在这种情况下,HttpURLConnection是URLConnection和Object的后代.因此,HttpURLConnection是一个URLConnection,也是一个Object.

反过来不一定正确:URLConnection可能是HttpURLConnection,但不一定如此.所以你必须使用铸造.

但URL类和HttpURLConnection不相关.只有通过OBJECT类.

这是我无法理解的.有人能帮我吗?

先感谢您.

Kay*_*man 5

你没有施放URL,你正在施放openConnection()(URLConnection)的返回值,这是HttpURLConnection地址开始时的内部深处http://.