Sunteți pe pagina 1din 14

TEMA 5

Herencia

V1.3

Manuel Pereira Gonzlez

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

Introduccin
Herencia Una clase (subclase clase hija) hereda la estructura de otra (superclase o clase padre), y concretiza ciertos aspectos de sta. La clase hija comprende un subconjunto de los objetos de la clase padre. Ej:
Clase: Animal
Ser vivo que nace, crece, se reproduce y muere

Subclase: Perro (subconjunto de animales)


Ser vivo que nace, crece, se reproduce, muere, tiene cuatro patas, dos ojos, ladra,

Introduccin
Relacin de Generalizacin / Especializacin Jerarqua definida a travs de la Herencia:
Un CANICHE es un PERRO Una PERRO es un ANIMAL ELEFANTE Un ANIMAL es un SER VIVO SER VIVO

ANIMAL

VEGETAL

PERRO

JIRAFA

CANICHE

PEQUINS

Introduccin
Ventaja fundamental: Reutilizacin/Centralizacin de Cdigo. No es necesario volver a escribir los atributos y mtodos de la clase padre en la clase hija.
No duplicidad del cdigo Disminuye volumen de cdigo Facilita el mantenimiento Permite el polimorfismo: Tratar con objetos de una clase general sin saber la subclase concreta a la que pertenecen

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

Clases Derivadas: Implementacin


En java para que una clase herede de otra se utiliza la palabra clave extends

Clases Derivadas: Implementacin


Una clase derivada hereda las variables y mtodos de la clase padre, adems de aadir sus variables y mtodos propios

Clases Derivadas: Constructores


Por defecto desde un constructor de una clase hija se llama al constructor sin argumentos de la clase padre

Clases Derivadas: Constructores


Por defecto desde un constructor de una clase hija se llama al constructor sin argumentos de la clase padre Si se desea llamar a otro constructor de la clase padre se utiliza la palabra clave super Para mantener el encapsulamiento, una clase derivada debe inicializar sus variables especficas en el constructor, y dejar al constructor del padre inicializar las suyas.

Clases Derivadas: Constructores

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

Sobreescritura de mtodos: Mtodos heredados vs Sobreescritos


Una clase hija puede sobreescribir un mtodo de la clase padre para modificar su implementacin

Sobreescritura de Mtodos: Mtodos static y final


No se pueden sobreescribir los mtodos de clase (static). Si se declara un mtodo de tipo final, no puede ser sobreescrito por clases derivadas

Sobreescritura de Mtodos: Polimorfismo


Polimorfismo Tratar objeto de una clase ms general independientemente de que sea de una clase concreta Ej: Si tengo un perro, un elefante y una jirafa, puedo tratarlos a todos como animales Ej: Polgono -> Mtodo para calcular el permetro
Crculo: 2 * PI * R Rectngulo: Base * Altura Tringulo: Base * Altura / 2

Lista de polgonos, cada uno sabe calcular su rea pero se tratan de igual manera sin saber de qu tipo de polgono concreto se trata

Sobreescritura de Mtodos: Polimorfismo

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

Mtodos y Clases Abstractas


Un mtodo abstracto (abstract) de una superclase no tiene implementacin, debe ser implementado por las clases derivadas Para poder definir un mtodo abstracto, es necesario que la clase sea declarada abstracta Una clase abstracta puede tener mtodos abstractos y mtodos que no lo son No se puede instanciar una clase abstracta (no se pueden crear objetos de esa clase)

Mtodos y Clases Abstractas

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

10

Restricciones de Acceso
Cuatro posibles visibilidades de atributos y mtodos: public, private, protected y package (por defecto, no se pone nada).
VISIBILIDAD Propia clase Mismo paquete Otro paquete Subclase en paquete Subclase en otro paquete public SI SI SI SI SI protected nada SI SI NO SI SI SI SI NO SI NO private SI NO NO NO NO

Restricciones de Acceso

11

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

La Clase Object
En Java, todo objeto implcitamente hereda de la clase Object La clase Object tiene ciertos mtodos, que las subclases pueden sobreescribir
public String toString() public int hashCode() public boolean equals(Object obj) protected Object clone()

Todo objeto, por tanto, tiene una implementacin por defecto de estos mtodos

12

Agenda
Introduccin Clases Derivadas Implementacin Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final Polimorfismo Mtodos y clases abstractas Restricciones de Acceso La Clase Object Resumen

Resumen
Introduccin Superclases y Subclases Reutilizacin / Centralizacin de cdigo Clases Derivadas Implementacin (extends) Constructores Sobreescritura de Mtodos Mtodos Heredados vs Sobreescritos Mtodos static y final
No se pueden sobreescribir

Mtodos y clases abstractas Mtodo abstract: Sin implementacin por def Slo mtodos abstract en clases abstract Clases abstract no instanciables Restricciones de Acceso public, protected, nada y private La clase Object Mtodo toString()

Polimorfismo

13

Resumen: Para ms informacin


http://pisuerga.inf.ubu.es/lsi/Invest /Java/Tuto/II_6.htm http://eees.ii.uam.es/alfonso/web_p oo_04/teoria/material/subclases_e_i nterfaces.pdf http://www.ii.uam.es/%7Ecastells/d ocencia/poo/4-jerarquias.pdf

14

S-ar putea să vă placă și