Ahh... now I see where the confusion comes from (

I think)
In the preceding example from K&B the a[x].doStuff() is a method call on the Animal reference array. being defined as:
The compiler can only check that Dog() IS-A animal and since this succeeds the code succeeds, HOWEVER since static does not adhere to polymorphism there is no dynamic linking during runtime of the new Dog().doStuff(), it executes Animal.doStuff().
In the preceding example you are implicitly executing the class method (static) in each constructor.