Documentos de Académico
Documentos de Profesional
Documentos de Cultura
JCastellanos
Herencia
Objetivos
a) Definir el concepto de herencia entre
clases
b) Interpretar el cdigo fuente de una
aplicacin Java donde aparecen clases
relacionadas mediante la herencia.
c) Construir una aplicacin Java sencilla,
convenientemente especificada, que haga
uso de la herencia entre clases.
JCastellanos
Cosa
Medio de telecomunicacin
Medio de
transporte
Objeto de
oficina
Coche
Vehiculo areo
JCastellanos
Definicin Herencia
La herencia es una propiedad que
permite la declaracin de nuevas clases
a partir de otras ya existentes.
Esto proporciona una de las ventajas
principales
de
la
Programacin
Orientada a Objetos.
JCastellanos
Definicin Herencia
La reutilizacin de cdigo previamente
desarrollado ya que permite a una
clase ms especfica incorporar la
estructura y comportamiento de una
clase ms general.
JCastellanos
Herencia
En otras palabras:
La idea bsica es poder crear clases
basadas en clases ya existentes.
Cuando heredamos de una clase
existente, estamos re-usando cdigo
(mtodos y campos).
Podemos agregar mtodos y variables
para adaptar la clase a la nueva situacin.
JCastellanos
Herencia
La herencia la identificamos cuando
encontramos la relacin es-un entre la
nueva clase y la ya existente. Un
estudiante es una persona.
La clase ya existente se le llama
superclase, clase base , o clase padre.
A la nueva clase se le llama subclase,
clase derivada, o clase hija.
JCastellanos
Herencia
De hecho, en Java, todas las clases
deben derivar de alguna clase. (Object)
Cuando una clase B se construye a partir
de otra A mediante la herencia, la clase B
hereda todos los atributos, mtodos y
clases internas de la clase A. Adems la
clase B puede redefinir los componentes
heredados y aadir atributos, mtodos y
clases internas especficas
JCastellanos
Herencia
Para indicar que la clase B (clase
descendiente, derivada, hija o subclase)
hereda de la clase A (clase ascendiente,
heredada, padre, base o superclase) se
emplea la palabra reservada extends en
la cabecera de la declaracin de la clase
descendiente. La sintaxis es la siguiente:
JCastellanos
Herencia en Java
Java permite definir una
clase como subclase de
una clase padre.
class clase_hija extends clase_padre
{
..........
}
JCastellanos
Clase Padre
Clase Hija
10
HERENCIA Clases y
superclases
JCastellanos
11
Herencia
JCastellanos
12
Herencia
En este diagrama:
La clase Empleado es la superclase de Director, Comercial e Informtico.
Las clases Director, Comercial e Informtico son subclases de la
clase Empleado.
La clase Director es la superclase de Ejecutivo.
La clase Ejecutivo es la subclase de Director.
Las subclases heredan todos los mtodos y atributos de sus superclases.
Por tanto, al definir una subclase, esta tiene automticamente el mismo
comportamiento que la superclase que hereda. Y se debe tener en cuenta
que esta herencia sube en la jerarqua hasta llegar a la cumbre.
JCastellanos
13
Herencia
Existe una raz en esta jerarqua, que es la clase Object. Todas las
clases creadas heredan las caractersticas y el comportamiento
de Object.
JCastellanos
14
Constructores
JCastellanos
15
Constructores
Un constructor se llama igual que la clase.
No devuelve nada, ni siquiera void.
Pueden existir varios, pero siguiendo las reglas de la
sobrecarga de funciones.
De entre los que existan, tan slo uno se ejecutar al
crear un objeto de la clase.
Dentro del cdigo de un constructor generalmente
suele existir inicializaciones de variables y objetos,
para conseguir que el objeto sea creado con dichos
valores iniciales.
JCastellanos
16
Constructores
Constructor por defecto
Un constructor por defecto es un constructor sin parmetros que no hace nada.
Sin embargo ser invocado cada vez que se construya un objeto sin
especificar ningn argumento, en cuyo caso el objeto ser iniciado con los
valores predeterminados por el sistema (los atributos numricos a ceros,
los alfanumricos a nulos, y las referencias a objetos a null).
{
}
JCastellanos
17
Lab 1 Constructores
public class Arboles {
public Arboles() {
System.out.println("Un rbol genrico"); }
public Arboles(String tipo) {
System.out.println("Un rbol tipo " + tipo); }
public Arboles(int altura) {
System.out.println("Un rbol de " + altura + " metros"); }
public Arboles(int altura,String tipo) {
System.out.println("Un " + tipo + " de " + altura + " metros"); }
public static void main(String args[]) {
}
JCastellanos
18
Constructores
public class TestArboles {
public static void main(String args[]) {
Arboles arbol1 = new Arboles(4);
Arboles arbol2 = new Arboles("Roble");
Arboles arbol3 = new Arboles();
Arboles arbol4 = new Arboles(5,"Pino");
}}
JCastellanos
19
Constructores y Herencia
Cuando se declara un objeto de una clase
derivada, se ejecutan los constructores
siguiendo el orden de derivacin, es decir,
primero el de la clase base, y despus los
constructores de las clases derivadas de arriba
a abajo.
Para pasar parmetros al constructor de la
clase padre:
super (para1, para2, ..., paraN)
JCastellanos
20
class Humano {
protected String nombre;
protected String apellido;
Lab 2
21
22
JCastellanos
23
Lab 3
JCastellanos
24
JCastellanos
25