Path: csiph.com!usenet.pasdenom.info!gegeweb.org!eternal-september.org!feeder.eternal-september.org!mx05.eternal-september.org!.POSTED!not-for-mail From: Eric Sosman Newsgroups: comp.lang.java.programmer Subject: Re: HttpURLConnection Date: Tue, 19 Feb 2013 17:56:31 -0500 Organization: A noiseless patient Spider Lines: 30 Message-ID: References: <30772112-527f-47b0-9333-70777b889b5c@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 19 Feb 2013 22:55:43 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="0d73d8cc209bff1c6395088b400d0605"; logging-data="19801"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+drktR67kLJ2T4RdDCu40S" User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 In-Reply-To: <30772112-527f-47b0-9333-70777b889b5c@googlegroups.com> Cancel-Lock: sha1:EYoVL8EdLPp4mCaFJCnjO/Iy0ic= Xref: csiph.com comp.lang.java.programmer:22378 On 2/19/2013 4:45 PM, bob smith wrote: > How can people use the class HttpURLConnection when the abstract method connect() from URLConnection is never defined? > > I thought you can't use a class till all the abstract blanks are filled in? The openConnection() method of the URL class returns a URLConnection object. I haven't used it myself, but from the documentation it appears that for an HTTP URL the URLConnection will in fact be an HttpURLConnection. Both of those classes are abstract, and as such they cannot be instantiated. The object actually returned will be an instance of some concrete subclass, possibly anonymous. The inheritance tree would look something like java.lang.Object java.net.URLConnection java.net.HttpURLConnection (maybe a few more levels here) some.concrete.class.Thing If you're curious, you can do getClass() on the object you get back from openConnection(), and print its class name or do other snoopy things. But to use it, you're just fine treating it as an HttpURLConnection -- because it "is an" HttpURLConnection, in exactly the same way that an Integer "is a" Number. -- Eric Sosman esosman@comcast-dot-net.invalid