Вы находитесь на странице: 1из 27

1

HERENCIA

Herencia en el mundo real

Cosa

Medio de telecomunicacin
Medio de
transporte

Objeto de
oficina
Coche

Vehculo areo

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 que haga uso de la
herencia entre clases.

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: la reutilizacin de cdigo
previamente desarrollado ya que permite a una clase ms
especfica incorporar la estructura y comportamiento de una
clase ms general.

HERENCIA

En otras palabras:
La idea bsica es poder crear clases basadas en clases
ya existentes.
Cuando heredamos de una clase existente, estamos reusando cdigo (mtodos y campos).
Podemos agregar mtodos y variables para adaptar la
clase a la nueva situacin.

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.

HERENCIA CLASES Y
SUPERCLASES

HERENCIA

HERENCIA
Empleado

Administrativo

Docente

HERENCIA
// SUPERCLASE Empleado
class Empleado {
private String nombre;
private int edad;

private String direccion;


void setDatos(String n,int e,String d)
{ nombre=n;
edad=e;

direccion=d;
}
void mostrarDatos() {
System.out.println("Nombre: "+nombre);

System.out.println("Edad: "+edad);
}

10

System.out.println("Direccion: "+direccion); }

HERENCIA
// la CLASE EXTENDIDA Docente, hereda todos los atributos y
funciones de la clase Empleado
class Docente extends Empleado {
}

11

La clase Docente como hereda todo de la


clase Empleado, tiene todos los atributos y
funciones
de la clase Empleado, sin
necesidad de declararlos nuevamente

HERENCIA
//la CLASE EXTENDIDA Administrativo, hereda todas los
atributos y mtodos de la clase Empleado, adems //se le aade
un nuevo atributo que es cargo.

class Administrativo extends Empleado


{ private String cargo;

12

Adems de heredar todos los atributos y funciones


de la clase Empleado, la clase Administrativo tiene
una nueva variable: cargo

HERENCIA
void setDatos(String n,int e,String d,String c)
{
super.setDatos(n,e,d);
cargo=c;
}

13

La palabra super hace referencia a atributos y


funciones de la superclase Empleado. Se llama al
mtodo SetDatos de la clase Empleado

HERENCIA
void mostrarDatos()
{
super.mostrarDatos();
System.out.println("cargo: "+cargo);

}
}

14

Llama a la funcin mostrarDatos de la superclase


Empleado, el cual imprime los atributos nombre edad y
direccin. Y luego imprime el atributo cargo por separado
ya que en la clase Empleado no imprime este atributo

HERENCIA
//CLASE DE PRUEBA QUE USA LAS CLASES Administrativo y Doce

class prueba
{ public static void main(String args[])
{ Docente doc=new Docente();
// el objeto doc tiene todas los atributos y funciones de la clase heredada Empleado
doc.setDatos("Carlos Sanchez",32,"Frias 34");
doc.mostrarDatos();
Administrativo admi=new Administrativo();
//admi, objeto de tipo Administrativo
admi.setDatos("Juan Perez",20,"bustillos","cajero");
admi.mostrarDatos();
}

15

HERENCIA
Utilizando constructores // SUPERCLASE Empleado
class Empleado {
private String nombre;
private int edad;
private String direccion;
Empleado(String n,int e,String d) {
//constructor que recibe 3 parmetros
nombre=n;

edad=e;

16

direccion=d; }

HERENCIA
void mostrarDatos()
{ System.out.println("Nombre: "+nombre);
System.out.println("Edad: "+edad);
System.out.println("Direccion: "+direccion); }

17

HERENCIA
// CLASE EXTENDIDA Administrativo

class Administrativo extends Empleado {


private String cargo;
public Administrativo(String n,int e,String d,String c) //constructor que recibe 4
parmetros
{ super(n,e,d);

//con esta sentencia se ejecuta el constructor de la superclase


cargo=c;
}
void mostrarDatos() {
super.mostrarDatos();
System.out.println("cargo: "+cargo);
}

18

HERENCIA
//CLASE DE PRUEBA QUE USA LA CLASE Administrativo
class prueba {
public static void main(String args[])
{

Administrativo admi=new Administrativo("Juan


Perez",20,"bustillos","cajero");

19

admi.mostrarDatos(); } }

HERENCIA
Crear una clase trabajador con los atributos nombre y numero de
seguridad social.
Crear la subclase empleado con los atributos sueldo e impuestos.
El pago del empleado resulta de dividir la difeerencia de sueldo
impuestos sobre 12.

20

Crear la subclase consultor con los atributos horas y tarifa.

HERENCIA
public class trabajador {
private String nombre;

private String NSS;


public trabajador(String nombre, String nss)
{
this.nombre=nombre;
this.NSS= nss;
}
public String toString()
{

21

return nombre + NSS;

HERENCIA
public class consultor extends trabajador {
private int horas;
private double tarifa;
public consultor(String nombre, String NSS, int horas, double
tarifa)
{
super(nombre,NSS);
this.horas=horas;
this.tarifa=tarifa;

22

HERENCIA
public double calculopago()
{
return horas

* tarifa;

public String toString(){


return "consultor"

+ super.toString();

23

HERENCIA
public class empleado extends trabajador {
private double sueldo;
private double impuestos;
private final int pago=12;

public empleado(String nombre, String NSS, double sueldo)


{
super(nombre,NSS);
this.sueldo= sueldo;
this.impuestos= 0.3 * sueldo;

24

HERENCIA
public double calcularopago() {
return (sueldo-impuestos)/ pago;
}
public String toString()

{
return "empleado"

+ super.toString();

25

HERENCIA
public class Herencia2 {
public static void main(String[] args) {
consultor x = new consultor("juan", "a123",10, 15);
System.out.println(x.toString());

System.out.println(x.calculopago());
}

26

27

HERENCIA

Вам также может понравиться