Você está na página 1de 18

Ing Yuri A.

Pomachagua Basualdo
Ing Yuri A. Pomachagua Basualdo
 Herencia
 Definición
 Clases derivadas
 Jerarquía de Clases
 Definición
 Principios
 Aplicaciones

Yart Ing Yuri A. Pomachagua Basualdo


Al finalizar esta sesión el alumno será capaz comprender
y utilizar la herencia en Java

Yart Ing Yuri A. Pomachagua Basualdo


La herencia es el principio fundamental de la POO, empleado para
reutilizar código entre clases relacionadas.

La herencia es la propiedad que permite definir nuevas clases


usando como base clases ya existentes, de tal manera que la nueva
clase (clase derivada) hereda los atributos y el comportamiento de
la clase base.

Yart Ing Yuri A. Pomachagua Basualdo


La clase denominada derivada se crea a partir de otra ya existente,
denominada clase base.

La nueva clase hereda de la clase ya existente los atributos y el


comportamiento que son específicos de ella.

La clase derivada puede añadir y/o redefinir variables y métodos


heredados

Yart Ing Yuri A. Pomachagua Basualdo


Súper
clase,
Clase base La herencia la identificamos cuando
Persona
o Clase encontramos la relación es-un entre la
padre nueva clase y la ya existente.

Ejem:
Un Estudiante es-una Persona.
Sub clase,
Un Empleado es-una Persona
Clase Un Programador es-un Empleado
Empleado
derivada o Un Cuadrado es-una Figura
Clase hija

Yart Ing Yuri A. Pomachagua Basualdo


La declaración de derivación de clases debe incluir la palabra
reservada extends y, a continuación, el nombre de la clase base de
la que se deriva.

Sintaxis
Public class Nombre_Clase_Derivada extends Nombre_Clase_Base
{
Declaraciones de instancias de clases añadidas
Definiciones de Métodos añadidos y cambiados
}

Yart Ing Yuri A. Pomachagua Basualdo


Clase Padre public class Padre {
public int método(int a) {...}
}

public class Hija extends Padre{


Clase Hija public int método(int a) {...}
}

Yart Ing Yuri A. Pomachagua Basualdo


public class Persona {
Persona private String nombre;
private Fecha fechaNacimiento;
private int dni;
-String nombre;
public Persona(String nombre,
-Fecha fechaNacimiento; Fecha fechaNacimiento, int dni) {
-int dni; this.nombre = nombre;
this.fechaNacimiento = fechaNacimiento;
<<constructor>> this.dni = dni;
+String getNombre() }
+Fecha getFechaNacimiento() public void imprimirDatos() {
+int getDni() System.out.print("DNI: ");
+void imprimirDatos() System.out.println(dni);
System.out.println("NOMBRE: " + nombre);
System.out.print("FECHA DE NACIMIENTO: ");
fechaNacimiento.imprimir();
System.out.println();
}
}

Yart Ing Yuri A. Pomachagua Basualdo


public class Empleado extends Persona{
private int sueldoBase;
public class Fecha {
public Empleado(String nombre, Fecha
public int dia;
fechaNacimiento, int dni, int sueldoBase) {
public int mes;
super(nombre,fechaNacimiento, dni);
public int anio;
this.sueldoBase = sueldoBase;
public void imprimir() {
}
System.out.printf("%d/%d/%d", dia, mes,
public int getSueldo() {
anio);
return sueldoBase;
}
}
}
public void imprimirSueldo(){
System.out.println("El sueldo basico
es: "+sueldoBase);
}
}

Yart Ing Yuri A. Pomachagua Basualdo


public class Principal {
public static void main(String[] args) {
Fecha fec = new Fecha();
fec.dia=10;
fec.mes=11;
fec.anio=1990;
Empleado emple01= new Empleado("Luis", fec,10203210, 1500);
emple01.imprimirDatos();
emple01.imprimirSueldo();
}
}

Ing Yuri A. Pomachagua Basualdo


En Java, todas las clases forman parte de una jerarquía de clases. En
lo más alto de dicha jerarquía está la clase Object –incluida en el
paquete java.lang y, de ella, derivan todas las demás.

Yart Ing Yuri A. Pomachagua Basualdo


Las relaciones de
herencia forman
Jerarquías de clase

Yart Ing Yuri A. Pomachagua Basualdo


No se acepta herencia
múltiple. Una Clase
sólo tiene una Súper
Clase

La jerarquía puede
extenderse a varios
niveles

Yart Ing Yuri A. Pomachagua Basualdo


¿Qué elementos de la superclase son accesibles desde la
subclase?
Los métodos y atributos public son accesibles.
Los métodos y atributos private no son accesibles, aunque sí se
heredan.
Si queremos que un atributo o método privado sea accesible
desde las subclases, tendremos que definirlo en la superclase
con el modificador protected.

public class Empleado extends Persona {


protected int sueldoBase;
}

Yart Ing Yuri A. Pomachagua Basualdo


Un miembro tiene acceso a:

Puede ser accedido por


métodos de: public protected omitido private

 La misma clase Si Si Si Si
 Subclases del mismo paquete Si Si Si -
 Otras clases del mismo paquete Si Si Si -
 Subclases en otros paquetes Si Si - -
 Otras clases de otros paquetes Si - - -

Yart Ing Yuri A. Pomachagua Basualdo


IMPLEMENTAR EN EL
LABORATORIO APLICACIONES
UTILIZANDO JAVA
EXPLICADOS EN CLASE

Yart Ing Yuri A. Pomachagua Basualdo

Você também pode gostar