Estoy estudiando actionScript y me ha surgido una duda y no sé el por qué ocurre lo siguiente en este código.
Os muestro aquí los pequeños códigos que he realizado a base de prueba y os comento la duda al final.
CÓDIGO DE LA SUPER CLASE
Código:
CÓDIGO DE LA SUBCLASEimport CONN.as class ICM { var connection:CONN; var path:String; public function ICM() { trace("constructor ICM"); path=" uno"; connection=new CONN(this,path); } public function probar() { trace("probar ICM"); } }
Código:
Código de la clase desde la cual hago la llamada a una función la clase ICM, sin ser esta subclase de ninguna. class AM extends ICM { public function AM() { trace("constructor de AM"); super(); } public function probar() { trace("probar AM"); //super.probar(); } }
Código:
CÓDIGO del fichero .flaclass CONN { var cm:ICM; public function CONN(controlador:ICM,cadena:String) { trace("constructor CONN"); cm=controlador; trace("hacemos la prueba"+cadena); cm.probar(); } }
Código:
Pues bien, en estos pequeños códigos, desde el fichero ".fla", hago una llamada al constructor de la clase AM, este a su vez, llama al constructor de la superclase ICM y esta al constructor de otra clase(clase CONN) que en principio, no es heredada de nadie, una clase independiente.import AM.as controlador=new AM(); stop();
A esta clase, le paso el fichero ICM.as para poder llamar desde la clase CONN a la función probar de la clase ICM, sin embargo y aquí está mi pregunta, ¿por qué se me ejecuta la función probar de la clase AM en vez de la que yo he llamado(la función probar de la clase ICM)?
Sé que esto siempre ocurre así, pero no sé el por qué.
Mira quí os pongo la salida para que la veáis:
constructor de AM
constructor ICM
constructor CONN
hacemos la prueba uno
probar AM
Veis, en vez de en la última linea de la salida poner "probar ICM" pues es la función a la que he llamado pone la salida de la función probar de la subclase de ICM, osea, una función a la que yo no he llamado.
Necesito vuestra ayuda porque no me gusta aprender cosas que no conozco por que ocurren.
Muchas gracias y espero vuestras respuestas.