It's about ensuring the invariants the parent class needs -- not giving subclasses freedom to do whatever they want is meant as a feature.
This allows library designers to design more future proof APIs (since they control more invariants of how they're gonna be extended), and to prevent users of their libs from shooting themselves in the foot.