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.
Yes you can. And if you don't the compiler will provide the invisible default constructor for your abstract class.
The use: Remember, when you extend a class (also true for an abstract class) every constructor in that subclass that does not call another constructor of the same class will call super(); or perhaps super(with_an_argument).
So the use of constructors in abstract classes is just the same as for any concrete class. To perform things that should be done when a new object is created. Easiest example is the initialization of variables with some propper values.