Java 扩展HttpsURLConnection

Java 扩展HttpsURLConnection,java,httpurlconnection,Java,Httpurlconnection,我想向HttpsURLConnection添加功能,因此我尝试像这样扩展此类: public abstract class HTTPClient extends HttpsURLConnection 当我尝试使用此类时: HTTPClient con = (HTTPClient) url.openConnection(); 我得到以下错误: Exception in thread "main" java.lang.ClassCastException: sun.net.www.protoco

我想向HttpsURLConnection添加功能,因此我尝试像这样扩展此类:

public abstract class HTTPClient extends HttpsURLConnection
当我尝试使用此类时:

HTTPClient con = (HTTPClient) url.openConnection();
我得到以下错误:

Exception in thread "main" java.lang.ClassCastException: sun.net.www.protocol.https.HttpsURLConnectionImpl cannot be cast to HTTPClient
这里的问题是什么?如何解决


谢谢。

您可以按如下方式进行扩展:

class H extends HttpURLConnection {
  URLConnection uc;
  public H(URL url) {
    super(url);
    try { uc=url.openConnection(); } catch(Exception ex) { ex.printStackTrace();  }
 }

 public boolean usingProxy() { return true; }

 public void disconnect() { }

 public void connect() { }

}

你能粘贴定义
url
变量的部分吗?为什么你认为
url.openConnection()
知道你的
HttpsURLConnection
的子类?它返回
URLConnection
的一个实现,该实现位于继承层次结构的另一个分支上,并且与您的子类没有任何关系。要想实现这一点,
URL
必须可以通过工厂自定义以创建连接,而这不是API的一部分。HttpURLConnection与URLConnection属于同一层次结构-暗示用户应该知道系统将向其抛出实现是荒谬的