Just as a small addition to my previous article on abstract classes vs interfaces.
Wneh we declare an interface, we can’t tell how to create an object, implementing that interface. E. g., we can not define even a default constructor.
Thus, when we need to have at least one constructor of a defined signature, we must use abstract classes.
Check it out:
and compare it to this: