Las tres clases que heredan,los distintos tipos de empleados
Clase Empleado
package camera_cafe_herencia;
/**
* Clase que hereda de Camera_Cafe
*
* @author GALIA
* @version 1.0
*/
public class Empleado extends Camera_Cafe {
/* atributos privados */
private int id_empleado;
private String categoria;
/* constructor */
public Empleado(String nombre, String apellidos, int edad, int id) {
/* método de la clase padre */
super(nombre, apellidos, edad, id);
}
/* setters y getters */
/**
* @return id_empleado
*/
public int getId_empleado() {
return id_empleado;
}
/**
* @param id_empleado
*/
public void setId_empleado(int id_empleado) {
this.id_empleado = id_empleado;
}
/**
* @return categoría
*/
public String getCategoria() {
return categoria;
}
/**
* @param categoria
*/
public void setCategoria(String categoria) {
this.categoria = categoria;
}
/* métodos sobrecargados */
/*
* (sin Javadoc)
*
* @see camera_cafe_herencia.Camera_Cafe#cotillear()
*/
@Override
public void cotillear() {
System.out.println(": los empleados propagan los rumores");
}
/*
* (sin Javadoc)
*
* @see camera_cafe_herencia.Camera_Cafe#reunion_empresa()
*/
@Override
public void reunion_empresa() {
System.out.println(": los empleados se reunen al lado de la máquina.");
}
/* método propio de la clase */
public void enfermar() {
System.out.println("Los que se ponen malos son los empleados.");
}
}
Clase Jefe
package camera_cafe_herencia;
/**
* Clase que hereda de Camera_Cafe
*
* @author GALIA
* @version 1.0
*
*/
public class Jefe extends Camera_Cafe {
/*atributo privado*/
private int id_jefe;
/* Constructor */
public Jefe(String nombre, String apellidos, int edad, int id) {
/*método heredado de la clase padre*/
super(nombre, apellidos, edad, id);
}
/**
* Void. Propio de la clase
*/
public void planificar_trabajo() {
System.out.println("El jefe planifica el trabajo");
}
/* setter y getter */
/**
* @return id_jefe
*/
public int getId_jefe() {
return id_jefe;
}
/**
* @param id_jefe
*/
public void setId_jefe(int id_jefe) {
this.id_jefe = id_jefe;
}
/*métodos sobrecargados*/
/* (sin Javadoc)
* @see camera_cafe_herencia.Camera_Cafe#cotillear()
*/
@Override
public void cotillear() {
System.out
.println(": El jefe no cotillea, está exponiendo argumentos.");
}
/* (sin Javadoc)
* @see camera_cafe_herencia.Camera_Cafe#reunion_empresa()
*/
@Override
public void reunion_empresa() {
System.out.println("El jefe dirige la reunión.");
}
}
Clase Director de marketing
package camera_cafe_herencia;
/**
* Ejemplo sencillo de herencia y sobrecarga de métodos. Clase que hereda de
* Camera_Cafe.
*
* @author GALIA
* @version 1.0
*/
public class Director_Marketing extends Camera_Cafe {
private String titulacion;
private int años_de_experiencia;
/* constructor */
public Director_Marketing(String nombre, String apellidos, int edad, int id) {
/* atributos heredados de la clase padre */
super(nombre, apellidos, edad, id);
}
/* setters y getters */
/**
* @return titulación
*/
public String getTitulacion() {
return titulacion;
}
/**
* @param titulacion
*/
public void setTitulacion(String titulacion) {
this.titulacion = titulacion;
}
/**
* @return años_de_experiencia
*/
public int getAños_de_experiencia() {
return años_de_experiencia;
}
/**
* @param años_de_experiencia
*/
public void setAños_de_experiencia(int años_de_experiencia) {
this.años_de_experiencia = años_de_experiencia;
}
/*
* (sin Javadoc)
*
* @see camera_cafe_herencia.Camera_Cafe#cotillear()
*/
@Override
public void cotillear() {
System.out
.println(": el Director de Marketing no cotillea ,da consejos en la reunión.");
}
/**
* Void.Clase Director_Marketing
*/
public void dar_consejo() {
System.out.println("Los directores de marketing dan consejos");
}
/*
* (sin Javadoc)
*
* @see camera_cafe_herencia.Camera_Cafe#reunion_empresa()
*/
@Override
public void reunion_empresa() {
System.out
.println(": el Director de Marketing está reunido con el jefe.");
}
}
Clase abstracta Camera Cafe
package camera_cafe_herencia;
/**
* Una clase abstracta es una clase de la que nunca se pueden crear instancias:
* solo sirve como superclase a otras clases. Unifica datos y operaciones de
* subclases.
*
* @author GALIA
* @version 1.0
*/
public abstract class Camera_Cafe {
/* atributos protegidos que heredarán las subclases, las clases hijas */
protected String nombre;
protected String apellidos;
protected int edad;
protected int id;
/**
* Constructor
*
* @param nombre
* @param apellidos
* @param edad
* @param id
*/
public Camera_Cafe(String nombre, String apellidos, int edad, int id) {
super();
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
this.id = id;
}
/**
* Void de la clase padre.Se puede heredar o no.
*/
public void hablar() {
System.out.println(": hablando. ");
}
/**
* Void de la clase padre.Se puede heredar o no.
*/
public void tomar_cafe() {
System.out.println(": tomando café.");
}
/**
* método abstracto,no se implementa en la clase abstracta pero si en la
* clases hijas
*/
public abstract void cotillear();
/**
* Void de la clase padre.Se puede heredar o no.
*/
public void reunion_empresa() {
}
/* setters y getters */
/**
* @return id
*/
public int getId() {
return id;
}
/**
* @param id
*/
public void setId(int id) {
this.id = id;
}
/**
* @return nombre
*/
public String getNombre() {
return nombre;
}
/**
* @param nombre
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
/**
* @return apellidos
*/
public String getApellidos() {
return apellidos;
}
/**
* @param apellidos
*/
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
/**
* @return edad
*/
public int getEdad() {
return edad;
}
/**
* @param edad
*/
public void setEdad(int edad) {
this.edad = edad;
}
}
Clase Main que comprueba esto.
package camera_cafe_herencia;
import java.util.*;
/**
* Clase que contiene el método main. Los objetos responden de diferente manera
* a los métodos (sobrecarga).
*
* @author GALIA
* @version 1.0
*
*/
public class Main {
/*
* ArrayList de objetos Camera_Cafe, independientemente de la clase a que
* pertenezcan
*/
public static ArrayList<Camera_Cafe> empleados = new ArrayList<Camera_Cafe>();
public static void main(String[] args) {
/* creo 5 objetos, de las tres clases diferentes */
Camera_Cafe jefe = new Jefe("Gregorio", " Antúnez", 57, 27272);
Camera_Cafe empleado1 = new Empleado("Jesús", "Quesada", 35, 2);
Camera_Cafe empleado2 = new Empleado("Bernardo", "Marín", 32, 3);
Camera_Cafe empleado3 = new Empleado("Marimar", " Montes", 33, 4);
Camera_Cafe director_marketing = new Director_Marketing("Victoria",
" de la Vega", 41, 18);
/* los añado al ArrayList */
empleados.add(jefe);
empleados.add(empleado1);
empleados.add(empleado2);
empleados.add(empleado3);
empleados.add(director_marketing);
/* todos */
System.out.println("Toda la plantilla está tomando café\n");
/* bucle for-each, recorre el ArrayList */
for (Camera_Cafe empleado : empleados) {
System.out.print(empleado.getNombre() + " "
+ empleado.getApellidos() + " ");
/* imprime la acción que desarrolla cada objeto */
empleado.tomar_cafe();
}
System.out.println();
/* todos */
System.out.println("Todos hablan\n");
for (Camera_Cafe empleado : empleados) {
System.out.print(empleado.getNombre() + " "
+ empleado.getApellidos() + " ");
empleado.hablar();
}
/* todos */
System.out.println("\nSobre el cotilleo\n");
for (Camera_Cafe empleado : empleados) {
System.out.print(empleado.getNombre() + " "
+ empleado.getApellidos() + " ");
empleado.cotillear();
}
/* todos */
System.out.println("\nSobre las reuniones\n");
for (Camera_Cafe empleado : empleados) {
System.out.print(empleado.getNombre() + " "
+ empleado.getApellidos() + " ");
empleado.reunion_empresa();
}
/* objetos específicos, solo los que tienen definido dichos métodos */
System.out.println("\nSobre las bajas");
((Empleado) empleado1).enfermar();
System.out.println("\nSobre los consejos");
((Director_Marketing) director_marketing).dar_consejo();
}
}
Como ejemplo he tomado Camera Café.
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.