An abstract class can have instance variables; the purpose of a constructor is to initialize member variables. Although you can't instantiate an abstract class directly, every subclass of that abstract class must call one of the abstract class's constructors from its own constructors; this give the abstract class a chance to initialize its members.
An interface can't have a constructor, as you say. Since an interface cannot have any instance variables, a constructor would serve no purpose. In any case, an interface can't contain any member methods at all, so of course it can't have constructors either.