谁能解释一下:为什么URL调用了URLStreamHandler的抽象方法?
package java.net;import java.io.IOException;
import java.io.InputStream;
import java.io.File;
import java.io.OutputStream;
import java.util.Hashtable;
import sun.net.util.IPAddressUtil;
import sun.net.www.ParseUtil;
public abstract class URLStreamHandler {
 .....
    abstract protected URLConnection openConnection(URL u) throws IOException;
......
}package java.net;import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Hashtable;
import java.util.StringTokenizer;
import sun.security.util.SecurityConstants;public final class URL implements java.io.Serializable {
.....
transient URLStreamHandler handler;
.....
 public URLConnection openConnection() throws java.io.IOException {
return handler.openConnection(this);
    }
.....
}