Virtual method prototype definition in child class

In reply to ashok2469:

This should be illegal in my opinion, because polymorphism works during the calling of the function. It works like a lookup table that determines the right function to invoke (i.e, either the parent’s function or the child’s function). The called function will try to deal with the arguments being passed (as is). This may require an implicit downcast or an implicit upcast of the argument depending on what is being passed. An automatic downcast (without the use of $cast function, may result in a crash.)