Creo que el titulo debio decir algo como "Simulación de Polimorfismo estatico en lenguajes no tipificados" .
El aporte como experimento o simulación es interesante, pero no usaría algo que no implementa el lenguaje como una característica inherente a el. El polimorfismo estático es común en lenguajes tipificados como java, php no lo es. Si quieres "sobrecarga de métodos" generalmente se hace usando parametros por default:
http://www.php.net/manual/en/functions.arguments.php o con arreglos.
Cita: El problema esta en el casting a tipos nativos que no esta soportado por php, es por eso que se incorpora el handler de errores, sin embargo este solo permite el paso de ese error de casting particular. por lo que el bloque try catch que tu propones, sigue siendo necesario.
El problema es que quieres usar un lenguaje como si fuera otro. Cada lenguaje tiene sus propias características, ventajas y desventajas. Simular características que no son del lenguaje, puede ser el primer paso al desastre.
Si quieres probar algo sobre control de tipos de datos en php puedes usar estas clases experimentales:
http://www.php.net/manual/en/book.spl-types.php O esperar a que algunas de las siguientes propuestas se implementen en el lenguaje:
https://wiki.php.net/rfc/typechecking.
En general puedes sobrevivir sin la sobrecarga de métodos, pero si tu problema realmente lo requiere de la forma que lo hace java, entonces tu lenguaje es otro.
Por ultimo creo que tu aporte no funcionaria del todo bien cuando usas otra clase que herede a Test. Fuera de eso es ingenioso el artificio.