Template Method

Base defines the skeleton; subclasses fill in steps

Template Method puts the overall algorithm in a base method that calls smaller steps, letting subclasses override individual steps without changing the sequence. A report generator's run() always does header, then body, then footer โ€” but each report type supplies its own body().

This one genuinely benefits from inheritance: the base fixes the order; subclasses customize the variable parts.