Do you think of "strategy pattern"? Well, you do not call the methods of the derived class directly - but you do call them.
Imagine a function like:
public virtual void DoSomething()
{
DoStep1();
DoStep2();
}
protected abstract void DoStep1();
protected virtual void DoStep2()
{
}
When DoSomething is called, the DoStep1 method, and possibly the DoStep2 method, of the derived class are being called.
[Edit] Those are C# signatures, but the concepts are also available in Java. [/Edit]