ok, give me a chance to explain.
The idea here is 'subclasses don't override the main template method, they simply override some of the steps in the alogorithm, which are some primitive methods called in template method.'
so basic idea is to avoid the call super.method() in overriding methods. and to capture all the steps of an algorithm in one method in the abstract class.
this is for pluggable algorithms, if u put different algorithms in diffrent classes, it will be easy to switch between them in the client code where u use them.
let me know if u r not clear.
pl. read more here http://ciol.com/content/technology/sw_desg_patt/