pero si esta más que claro jajajaja, pues miremoslo con un ejemplo
################## CLASE HEREDADA ########################
class Heredo_lo_mio
def initialize
end
def metodo_dos
print "Estoy aca :DD"
end
def metodo_tres
end
end
###########################################################
################ CLASES QUE USO AHORA ####################
class Ejemplo < Heredo_lo_mio
def initialize
end
def metodo_dos
print "que miras tu D:<"
end
def metodo_uno
matriz = [300, 1234, 21, 4321, 5]
print matriz.size
matriz[matriz.size] = "miro"
print matriz.size
end
end
Mensaje=Ejemplo.new
Mensaje.metodo_dos
Si vemos el mensaje tal cual esta y ejecutamos el programa, tendría que salir esto en la consola...
Sale esto, obviamente porque estamos llamando al final a la clase Ejemplo con una variable local donde Mensaje=Ejemplo.new y luego en esta clase buscamos el metodo metodo_dos, ejecutando lo que tiene dentro que seria el print "que miras tu D:<"
Veremos ahora lo que hacer el super, pondremos el super dentro del metodo metodo_dos, de esta manera
################## CLASE HEREDADA ########################
class Heredo_lo_mio
def initialize
end
def metodo_dos
print "Estoy aca :DD"
end
def metodo_tres
end
end
###########################################################
################ CLASES QUE USO AHORA ####################
class Ejemplo < Heredo_lo_mio
def initialize
end
def metodo_dos
super()
print "que miras tu D:<"
end
def metodo_uno
matriz = [300, 1234, 21, 4321, 5]
print matriz.size
matriz[matriz.size] = "miro"
print matriz.size
end
end
Mensaje=Ejemplo.new
Mensaje.metodo_dos
Lo que pasará ahora es que buscara el metodo metodo_dos, pero a diferencia del anterior se encuentra primero con un super() por lo que buscara en la clase heredada Heredo_lo_mio el mismo metodo metodo_dos, por lo que imprimira en la consola "estoy aqui :DD" y luego como no hay nada mas en ese metodo, se devuelve al metodo_dos original y continua su trabajo hasta terminar...
Si a diferencia pongo super() en un metodo que no se encuentra en la clase heredada, tirara un error...
No hay comentarios:
Publicar un comentario