If I quote de documentation :"Any casting of a class reference to a derived class reference is done with a runtime check to make sure it really is a downcast. null is the result if it isn't. Note: This is equivalent to the behavior of the dynamic_cast operator in C++."
I explicitly kept track of the derived type as template parameter so that the cast could be performed statically (this is absurd :P).
