Я новичок в java, и я по-прежнему имею дело с основными темами. Я не могу понять, как работают следующие строки при получении нового соединения HttpURLC, вызывая URL.openConnection() и передавая результат в HttpURLConnection.Кастинг URL-объекта для HttpURLConnection
URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
Как вы можете создать экземпляр HttpURLConnection с объектом URL, если класс URL не наследует от HttpURLConnection?
Согласно ссылке Java API это иерархия обоих классов:
java.lang.Object ⇒ java.net.URLConnection ⇒ java.net.HttpURLConnection
java.lang. Объект ⇒ java.net.URL
насколько я знаю, литье используется следующим образом:
в этом случае HttpURLConnection является от URLConnection и Object. Следовательно, HttpURLConnection является URLConnection и также является объектом.
Обратное не обязательно верно: URLConnection может быть HttpURLConnection, но это необязательно. Поэтому вы должны использовать кастинг.
Но класс URL и HttpURLConnection НЕ связаны. Только через класс OBJECT.
Это то, что я не могу понять. Кто-нибудь может мне помочь?
Заранее спасибо.
есть метод call 'openConnection()' проверить, что он возвращает в документации ... – Selvin