Yes, an abstract class can have a constructor. Since an abstract class can have variables of all access modifiers, they have to be initialized to default values, so constructor is necessary. As you instantiate the child class, constructor of abstract class is invoked and variables are initialized.
On the contrary, an interface does contain only constant variables means they are already initialized. Thus, an interface does not need a constructor