【发布时间】:2015-03-30 10:50:27
【问题描述】:
我是 Java 新手,我仍在处理基本主题。通过调用 URL.openConnection() 并将结果转换为 HttpURLConnection 来获取新的 HttpURLConnection 时,我无法真正理解以下几行是如何工作的。
URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
如果 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 类。
这是我无法理解的。有人可以帮我吗?
提前谢谢你。
【问题讨论】:
-
有一个方法调用
openConnection()检查它在文档中返回的内容...
标签: java android url casting httpurlconnection