Sei sulla pagina 1di 25

FUNDAMENTOS DE JAVA

CAPTULO 7: HERENCIA Ing. Ronald Criollo

AGENDA
Herencia y Programacin orientada a objetos. Lenguaje JAVA soporta herencia Modificadores de Acceso y Herencia Sobreescritura Uso de THIS y SUPER Herencia y Constructores. Extendiendo las Clases.

HERENCIA
Objetos son creados para modelar COSAS. Las COSAS podran ser diferentes, pero tienen muchos atributos en comn Podemos crear un objeto que modele los atributos en comn

HERENCIA

ABSTRACCION

Una SUPERCLASE puede ser usada para modelar los atributos comunes o comportamiento. A veces, la SUPERCLASE no puede ser un Objeto en si. La SUPERCLASE puede definir el comportamiento que las SUBCLASES deben implementar

SUPERCLASES Y SUBCLASES

PROBLEMA DE HERENCIA MULTIPLE

Algunos lenguajes permiten que una clase pueda tener mutiples SUPERCLASES. Herencia provee la relacion ES UN. Multiple Herencia crea conflictos con los atributos y comportamientos

PALABRAS CLAVES EN LA HERENCIA

extends: Declara que la actual clase es una SUBCLASE de otra. super: usada por la SUBCLASE para acceder a los atributos o metodos de la SUPERCLASE. abstract: declara que una clase es ABSTRACTA implements: permite a una clase tomar las propiedades de una INTERFACE

ROL DE LOS MODIFICADORES DE ACCESO EN LA HERENCIA

La subclase hereda todos los atributos y comportamientos de la SUPERCLASE excepto los declarados como privado.

ROL DE LOS MODIFICADORES DE ACCESO EN LA HERENCIA

SOBRESCRITURA DE METODOS

SUBCLASE podria necesitar personalizar el comportamiento de las SUPERCLASES. La SUBCLASE define un metodo que ya existe en la SUPERCLASE. Cuando este metodo es llamado, es usado el que es definido en la SUBCLASE. El metodo de la SUPERCLASE es accesible desde la SUBCLASE usando la palabra clave SUPER .

SOBRESCRITURA DE METODOS

SOBRECARGA VS SOBREESCRITURA

Sobreescritura es cuando un metodo en la SUBCLASE es diseado para reemplazar un metodo del mismo nombre en la SUPERCLASE. Sobrecarga es tener varios metodos con el mismo nombre en la misma clase con distinta definicin o firma. Sobreescritura permite personalizar el comportamiento. Sobrecarga crea varias formas de hacer la misma cosa.

MANEJO DE CONSTRUCTORES EN LA HERENCIA


Contructores pueden ser sobrecargados. Cuando una SUBCLASE es construida, el constructor de la SUPERCLASE tambien es llamado. El constructor de la SUBCLASE puede llamar explicitamente al constructor de la SUPERCLASE usando la palabra clave SUPER. Si no hay un constructor correspondiente en la SUPERCLASE, la compilacin FALLA.

DECLARANDO UNA SUBCLASE

Sintaxis
[modificadores] class identif_clase extends identif_superclase

Ejemplo

DECLARANDO UNA SUBCLASE

IMPORT

Sintaxis
import nombre_paquete.nombre_clase; import nombre_paquete.*

Ejemplo

USANDO NOMBRE COMPLETO

Sintaxis
nombre_paquete.nombre_clase

Ejemplo

POLIMORFISMO
POLI = Multiple. MORFISMO = Formas.

Implica que un mismo Objeto puede tomar diversas formas. Figura a = new Circulo(); Figura b = new Triangulo();

CLASES ABSTRACTAS
Son SUPERCLASES que modelan de una forma mas generalizada los atributos y comportamientos. Las clases ABSTRACTAS definen metodos que no tienen cuerpo pero que deben ser sobreescritos. Las clases ABSTRACTAS no saben como es el comportamiento general de las SUBCLASES, por eso fuerzan a crear en las SUBCLASES un comportamiento con este nombre.

INTERFACES
Java impide el uso de Herencia Multiple. Sin embargo, una clase puede heredar atributos (STATIC y FINAL) y comportamientos de multiples fuentes usando INTERFACES. Las INTERFACES son como una plantilla para el comportamiento pero no la definen, es por eso que fuerzan a que las SUBCLASES las definan

INTERFACES

CLASE, CLASE ABSTRACTA E INTERFAZ

CLASE, CLASE ABSTRACTA E INTERFAZ

En una clase, al definir Animal tendramos que implementar los mtodos dibuja() e imprime(). Las clases hijas no tendran por qu implementar los mtodos, a no ser que quieran adaptarlos a sus propias necesidades. En una clase abstracta podramos implementar los mtodos que nos interese, dejando sin implementar los dems (dejndolos como mtodos abstractos). Dichos mtodos tendran que implementarse en las clases hijas. En un interfaz no podemos implementar ningn mtodo en la clase padre, y cada clase hija tiene que hacer sus propias implementaciones de los mtodos. Adems, las clases hija podran implementar otros interfaces.

CLASES FINAL
Una clase FINAL se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final. Por ejemplo, la clase Math es una clase final. Se usa la palabra clave FINAL para declarar un atributo INMUTABLE (CONSTANTE). Tambien se usa la palabra clave FINAL para impedir que un metodo sea sobreescrito en una SUBCLASE.

Potrebbero piacerti anche