最近有在看java源代码,但还是很多地方的疑问,先不问很多调用了本地方法还没看吧,就说说这个URLConnection类的connect方法,在通过getConnection得到一个URLConnection后要调用其connect才能产生一个连接,听说其底层也是产生一个套接字,于是乎就想去看看底层代码,打开URLConnection类的connect一看,抽象方法,没实现体,于是我看一下URLConnection有什么子类,看到一个HttpURLConnection及一个JarURLConnection,先看了一下HttpURLConnection的,找了一下connect方法,没有-_-,又去看了一下JarURLConnection的connect方法,也没找到,那这个是啥意思啊,但这两个也是抽象类,却已没有了子类啦,那它这个connect方法谁来实现啊,百思不得其得,还望各位高人帮忙解答解答...

解决方案 »

  1.   

    你得到 URLConnection 的对象之后使用 obj.getClass().getName() 方法就能看到这个对象具体的实现类了。
      

  2.   

    实际上 URLConnection 的子类不止这两个,这两上只是被归档化的子类,在 sun.net.www.protocol 包中还有很多的子类。使用上面提到的那种方式是得知具体实现类最为快捷、方便的方式。
      

  3.   


    的确如bao110908所说,用该方法我看到了输出的类为sun.net.www.protocol.http.HttpURLConnection,看来还得去下这个包的内容,真搞不懂为何sun不把它放在归档的源码里呢?