Abstract classes can have fields and non-abstract methods(what makes it an abstract class rater than an interface). The fields probably need to be initialized when a class that extends it is instantiated.
Having a constructor in the abstract class allows you to call super(foo);
to initialize them as opposed to doing it directly