小弟这段时间在挖java源码,发现了多处类似的问题:
例:java源码里,URLConnection的getInputStream()和getOutputStream()方法的实现只有一句“ throw new UnknownServiceException("protocol doesn't support input");”,它的子类HttpURLConnection里没有重写这两个个方法。那我们平时用HttpURLConnection的时候,getInputStream和getOutPutStream这两个方法是在哪里实现的呢?

解决方案 »

  1.   

    你在eclipse里打开URLConnection
    按F4,就看到有多少类继承它了
      

  2.   

    那就看 HttpURLConnection 的源码呀
      

  3.   

    URLConnection是抽象类,而他的子类HttpURLConnection也是抽象类他们都没有对getInputStream和getOutPutStream这两个方法进行具体的实现,你可以向一楼说的那样看一下它的继承目录树,就能发现在那个类中进行了具休的实现~~
      

  4.   

    public abstract class URLConnection 我也很奇怪啊。URLConnection 没有继承和实现任何类。
    而HttpURLConnection也没有实现getInputStream和getOutPutStream这两个方法期待高手出现~!!!
      

  5.   


    他们是抽象类,是需要别人来实现的
    比如HTTPClient里的HttpURLConnection就是实现的java.net.HttpURLConnection
      

  6.   

    别说这个,告诉楼主getInputStream在哪实现的,我还真找不到
      

  7.   

    实现在sun里面,到openJDK找找吧.
      

  8.   

    HttpURLConnection的定义:public abstract class HttpURLConnectionextends URLConnection
      

  9.   

    URLConnection是一个抽象类,它的子类会重写楼主说的那两个方法的。
    也可能这些方法在重写的时候,用native关键字修饰了。
    楼主再仔细找找看吧。