Polimorfismo En Java
Enviado por Spectrez • 24 de Abril de 2015 • 1.068 Palabras (5 Páginas) • 532 Visitas
POO Polimorfismo en Java
• El polimorfismo nos permite escribir programas para procesar objetos que compartan la misma superclase, como si todos fueran objetos de la superclase; esto puede simplificar la programación.
• Con el polimorfismo, podemos diseñar e implementar sistemas que puedan extenderse con facilidad. Las únicas partes de un programa que deben alterarse para dar cabida a las nuevas clases son las que requieren un conocimiento directo de las nuevas clases que el programador agregará a la jerarquía.
Comportamiento polimórfico
• Cuando el compilador encuentra una llamada a un método que se realiza a través de una variable, determina si el método puede llamarse verificando el tipo de clase de la variable. Si esa clase contiene la declaración del método apropiada (o hereda una), se compila la llamada. En tiempo de ejecución, el tipo del objeto al cual se refiere la variable es el que determina el método que se utilizará.
Clases y métodos abstractos
• Las clases abstractas no se pueden utilizar para instanciar objetos, ya que están incompletas.
• El propósito principal de una clase abstracta es proporcionar una superclase apropiada, a partir de la cual puedan heredar otras clases y, por ende, compartir un diseño común.
• Las clases que pueden utilizarse para instanciar objetos se llaman clases concretas. Dichas clases proporcionan implementaciones de cada método que declaran (algunas de las implementaciones pueden heredarse).
• Los programadores escriben código cliente que utiliza sólo tipos de superclases abstractas para reducir las dependencias del código cliente en tipos de subclases específicas.
• Algunas veces las clases abstractas constituyen varios niveles de la jerarquía.
• Por lo general, una clase abstracta contiene uno o más métodos abstractos.
• Los métodos abstractos no proporcionan implementaciones.
• Una clase que contiene métodos abstractos debe declararse como clase abstracta. Cada subclase concreta debe proporcionar implementaciones de cada uno de los métodos abstractos de la superclase.
• Los constructores y los métodos static no pueden declararse como abstract.
• Las variables de las superclases abstractas pueden guardar referencias a objetos de cualquier clase concreta que se derive de esas superclases. Por lo general, los programas utilizan dichas variables para manipular los objetos de las subclases mediante el polimorfismo.
• En especial, el polimorfismo es efectivo para implementar los sistemas de software en capas.
• El diseñador de una jerarquía de clases puede exigir que cada subclase concreta proporcione una implementación apropiada del método, para lo cual incluye un método abstract en una superclase.
• La mayoría de las llamadas a los métodos se resuelven en tiempo de ejecución, con base en el tipo del objeto que se está manipulando. Este proceso se conoce como vinculación dinámica o vinculación postergada.
• La variable de una superclase puede utilizarse para invocar sólo a los métodos declarados en la superclase.
• El operador instanceof determina si un objeto tiene la relación “es un” con un tipo específico.
• Todos los objetos en Java conocen su propia clase y pueden acceder a esta información a través del método getClass de la clase Object, el cual devuelve un objeto de tipo Class (paquete java. lang).
• La relación “es un” se aplica sólo entre la subclase y sus superclases, no viceversa.
Métodos y clases final
• Un método
...