Type Casting different from AS3

So i have an array of nodes.
Each node has a method called apply() which is overridden in subclasses.
So when I try to call myArray[i].apply() I get the Node.apply() method not the Subclass.apply() method.

In AS3 the default was to call the child class method but in HaXe I have to type cast these to get the correct one.
That’s all well and good but how do I find the type of the lowest class type from an array already cast as nodes?
Something like this:
cast( i, Type.getClass(i) ).apply();

I tried this:
var j:Projectile = cast(i, Projectile);

And got the error:
Type Coercion failed: cannot convert nodes::[email protected] to nodes.Projectile.

Projectile is a subclass of node!
Am I to understand you can only type cast up the heirarchy and not the other way round?

My bad, object was actually a Node not a Projectile