One use I have seen to enforce template design
pattern. We can fix the sequence of method call using abstract class.
Suppose we have a abstract class like the following is present
Now if we write classes which extends the MySeq class we have to override the printBody() and then if we call the printPage() always a proper sequence of method will execute, which first print the head then body(which will different in different subclass) and then the footer.
So we don't have to maintain the sequence i.e. multiple times call to printHead()/printFoot() will be avoided. That means we are standardizing the subclasses .
There may be other uses but this one I used mainly.