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.
Inheritance represents IS-A relationship. Since a class IS itself, it cannot inherit itself. Even if you try to implement it (class A extends A) you will get compile time error.
This is more of a theoretical question, and I would point you to this post for further explanation.
The quieter you are, the more you are able to hear.
The JLS is more confusing than usual on this topic. Campbell summarizes it correctly - the supertypes and subtypes of a class include the class itself, but the superclasses and subclasses do not. Which seems stylistically inconsistent, but logically consistent, in the sense that the JLS does use the terms precisely and consistently, even if they seem inconsistent.
So if you're using the JLS definitions, a class is not a subclass of itself, but it is a subtype of itself.
If you're using some other definitions, well, the answer would depend on the definitions used.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com