Because, the creators of the servlet framework cannot give all the functionality that you might want in your application. So, if they make their class abstract, you the developer will be providing...
For Java: Yes, Reader is an abstract class in package of java.io; For C#: No, Reader is NOT one of the defined library classes. Of course you create one.
Abstract Classes contain the work abstract in it. It is used when you know that you will need to use an object of its type but do not know the inner workings yet. Anonymous classes are those classes...
The major difference is when we want create a class and that cann't be instantiated in the outer classes we will use the concept of abstract class. and abstract class may or mayn't be contain...