hello!!! This is about abstract classes.From whatever I have learnt till now abstract classes can not be instantiated.But if we look at URL class it has got a method url.openConnection() which according to jdk documentation
"Returns a URLConnection object that represents a connection to the remote object referred to by the URL. " Now URLConnection class as per my knowledge is an abstract class...so whats the magic in openConnection method which causes instantiation of an abstract class. Please correct me if i am wrong...
There is no magic. What happens when you do, hashtable.keys() ? It returns an Enumeration. But Enumeration is an interface!! How can it instantiate an interface? In all such cases, the method returns an object of either a class that implements the interface or a class that extends from the abstract class... as the case may be. You can actually try this: Enumeration enum = hashtable.keys(); System.out.println( enum.getClass()); HTH, -Paul.