This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
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.