For example, in java.net, URLConnection is abstract, its subclasses are all abstract and the actual implementations that depend on a lot of factors are actually hidden but once you understand those ...