I frequently find myself creating classes which use this form (A):
abstract class Animal { public void Walk() { // TODO: do something before walking /
Btw, is there a name for this design pattern?
Your first example uses aspects of the Template Method pattern and is similar to what Herb Sutter calls the "Non-virtual Interface Idiom":