Академический Документы
Профессиональный Документы
Культура Документы
Por ejemplo, en la relacin de herencia del ejemplo de las figuras aunque la clase
base Figura tiene los mtodos calcularArea y calcularPerimetro, las subclases
Circulo, Cuadrado, Triangulo y Rectangulo redefinen estos mtodos ya que
el clculo del rea y el permetro de cada uno de ellos es diferente.
Ejemplo 2
Definimos la clase numero y las clases hijas Numero positivo y Numero negativo
Las clases hijas implementan los mtodos numero prximo, en la primera clase se
define un contador incremental, en la segunda clase (numero negativo) se toma
como referencia un contador decremental.
Otra cosa que puede verse en este ejemplo es que al imprimir los objetos positivos
y negativos se llama automticamente al mtodo toString (), es el modo en el
que Java imprime sus objetos en pantalla. Y el aprovechamiento del mecanismo
de herencia, en la programacin del mtodo toString () que retorna el valor de
numero como un String, es decir, algo que puede imprimirse fcilmente. Al
llamarlo en un NumeroPositivo, como este no lo tiene programado, se ejecuta el
que esta definido en la clase padre Numero. Al llamarlo en un NumeroNegativo
tambin se llama al de la clase padre.
Polimorfismo por Enlace dinmico
Esto permite invocar operaciones en objetos obviando el tipo actual de stos hasta
el momento de ejecutar el cdigo. O sea, nos permite definir elementos como un
tipo e instanciarlos como un tipo heredado. Pero qu utilidad tiene obviar el tipo
de un objeto para luego tomar esta decisin?.
Gracias a que en java la definicin de los tipos de objetos se puede producir por
enlazado posterior (late binding), no nos debe preocupar a qu tipo de elemento le
paso un mensaje, ya que el compilador tomar la decisin sobre qu objeto
ejecutar qu mtodo de acuerdo a la forma de crear la instancia.
Se debe tener por lo menos una relacin de herencia que permita determinar un
tipo base para la declaracin, sea cual sea el subtipo que se instancie. Veamos un
ejemplo que nos aclare un poco las cosas:
Vemos que el mtodo muvete llama al mtodo mover de un mamfero y aunque
no sabe con qu clase de mamfero trata, funciona y se llama al mtodo
correspondiente al objeto especfico que lo llama (es decir, primero un gato y
luego un perro). Si no existiera el enlace dinmico, tendramos que crear un
mtodo muevete para los mamferos de tipo Gato y otro para los de tipo
Perro.
EJERCICIOS PROPUESTOS