Can an abstract class have a constructor?
If so, how can it be used and for what purposes?
Yes it can have a constructor and it is defined and behaves just like any other class's constructor. Except that abstract classes can't be directly instantiated, only extended, so the use is therefore always from a subclass's constructor.