Está en la página 1de 22

Programacin Bsica en Java y Programacin Orientada a Objetos

Herencia y Polimorfismo
Ing. Rolando Steep Quezada Martnez
rqm@upnorte.edu.pe

Herencia
Consiste en crear una clase nueva, como un tipo de una
clase existente. La clase nueva toma la forma de una clase
existente y le agrega cdigo (sin modificar la clase
existente).
Reuso de cdigo.
El compilador es el que hace la mayor parte del trabajo.
Es una parte integral de Java.

Herencia en Java

Herencia y Polimorfismo
Lo ms interesante de la herencia es la relacin entre la
clase derivada y la clase base: la clase derivada es un tipo
de la clase base (es-un o es-como-un). Java soporta esta
relacin.
Upcasting es la conversin de una referencia a un objeto de
la clase derivada, en una referencia a un objeto de la clase
base.
El upcasting es seguro: la clase derivada es un super
conjunto de la clase base, podra contener ms mtodos que
la clase base, pero seguro contiene los mtodos de la clase
base.

Prctica 5
Objetivos
Crear jerarquas de clases para facilitar la reutilizacin de
cdigo.
Identificar el escenario para la aplicacin del
polimorfismo.

Clase Abstracta
Una clase abstracta define una interfaz comn para los
diversos miembros de una jerarqua de clases.
La clase abstracta contiene mtodos que se definirn en las
subclases.
Todas las clases de la jerarquas pueden usar la misma
interfaz gracias al polimorfismo

Clases Abstractas en Java

Interface

Es una clase totalmente Abstracta:


Todos su mtodos son abstractos (public abstract)
Todos sus variables son constantes (public static final)
En JAVA, una interface es una coleccin de definiciones de mtodos sin
cuerpo y de declaraciones de constantes de tipo primitivo, agrupadas
bajo un nombre.

Una interface es un tipo de dato nuevo.

Una interface establece qu debe hacer la clase que la implementa, sin


especificar el cmo.

Las interfaces definen un tipo de dato, por lo tanto es posible declarar


variables con el nombre de la interface.

Interfaces en Java

Clase Interna
Una clase interne (inner class) es una clase anidada,
definida en el cuerpo de otra clase o en el cuerpo de un
mtodo.
Respetan las relaciones entre dos clases.
Existen 4 tipos:
Definidos en la Clase
Static (estticas)
Member (miembro)
Definidos en un mtodo
Local (local)
Anonymous (annimas)

Clase Interna. Miembro


Son declaradas dentro del cuerpo de otra clase
El anidamiento esta permitido
Pueden acceder a las variables de su clase contenedora y
de alguna clase incluida.
Las clases interna no pueden contener declaraciones
estticas.

Clase Interna. Esttica (anidada)


Las clases internas pueden declararse static, comnmente
denominadas clases anidadas.
Las clases anidadas no tienen acceso a la referencia
implcita.

Clase Interna. Local


Esta declarada dentro del bloque de cdigo de un mtodo.
Todos los parmetros finales (constantes) declarados en el
bloque son accesibles por los mtodos de la clase interna.

Clase Interna. Annima


Son clases internas que no tiene un nombre definido.
No pueden ser instanciadas.
Se definen en un mtodo de la clase externa.

Prctica 6
Objetivos
Hacer uso de abstracciones para la construccin de
aplicaciones extensibles.

Enumerated Types (enums)

Enums son Comparable y Serializables. Las constantes de Enum deberan


ser nombradas de manera similar que las constantes. Enums son
bsicamente un nuevo tipo de Clase.
Ya que es una clase puede contener mtodos

Prctica 7
Objetivo
Hacer uso del tipo Enum para la definicin de constantes.

Resumen
La herencia permite extender la funcionalidad de una clase
sin modificarla siquiera.
El polimorfismo es la capacidad de los objetos de suplantar
a todos sus subtipos.
Un mtodo polimrfico es aquel que trabaja con la clase
base de una jerarqua o con una interface.
Las clases adquieren nuevas capacidades al implementar
una interface.
Las interfaces resuelven el problema de la herencia mltiple
en Java.
Una interfaz es una clase completamente abstracta.
Los tipos enumerados son un tipo especial de clase que
ofrecen mayor control sobre valores de seleccin
constantes.

También podría gustarte