Que tal programadores!!
Hoy nos dimos a la tarea de
explicar la herencia, el que comúnmente es temido en las escuelas por el echo
de que lo dicen de manera que se ve tan complicada, pero hoooo! Sorpresa es muy
sencillo, pero para ello necesitamos los siguientes temas para entenderlo.
La definición de herencia: Como su nombre lo dice, la herencia es
una transmisión de datos, hacia alguien que lo necesite. 
Para entender mejor esto, nos dimos la tarea de plantear el siguiente
ejercicio en un diagrama.
Como podemos observar la clase PAPA o SUPERCLASE ya tiene atributos que
son privados y que las clases que lo heredan pueden tener ese tipo de atributos,
para utilizar los SET’s y los GET’s, ahora el código de las clases quedan de la
siguiente forma.
Casa clase estará en un archivo diferente y en el mismo package.
Código de la Clase Persona.
public class Persona {
 private String Nombre;
 private String ApPaterno;
 private String ApMaterno;
 private int Edad;
 
 //SET's
 public void setNombre(String nombre){
  Nombre=nombre;
 }
 public void setApPaterno(String paterno){
  ApPaterno=paterno;
 }
 public void setApMaterno(String materno){
  ApMaterno=materno;
 }
 public void setEdad(int edad){
  Edad=edad;
 }
 //GET's
 public String getNombre(){
  return this.Nombre;
 }
 public String getApPaterno(){
  return this.ApPaterno;
 }
 public String getApMaterno(){
  return this.ApMaterno;
 }
 public int getEdad(){
  return this.Edad;
 }
 //Constructor que recibe 4 argumentos
 public Persona(String nom, String paterno, String materno, int edad){
  //se lo mandamos a los set para establecer los valores
  setNombre(nom);
  setApPaterno(paterno);
  setApMaterno(materno);
  setEdad(edad);
 }
 //Funciones o Metodos
 public void MostrarDatos(){
  System.out.println("::: PERSONA :::");
  System.out.println("Nombre: "+Nombre+
    "\nApellido Paterno: "+ApPaterno+
    "\nApellido Materno: "+ApMaterno+
    "\nEdad: "+Edad);
 }
}
Código de la Clase Estudiante.
//CLASE ESTUDIANTE QUE HEREDA DE PERSONA
 class Estudiante extends Persona{
  private String NomEscuela;
  private int numSemestre;
  //SET's
  public void setNombreEscuela(String escuela){
   NomEscuela=escuela;
  }
  public void setNumSemestre(int semestre){
   numSemestre=semestre;
  }
  //GET's
  public String getNombreEscuela(){
   return this.NomEscuela;
  }
  public int getNumSemestre(){
   return this.numSemestre;
  }
  //Constructor que recibe 6 argumentos
  public Estudiante(String nom, String paterno, String materno, int edad, String escuela, int semestre) {
   //Para heredar los atributos de la clase Persona utilizamos la palabra super
   //y dentro del parentesis escogemos las variables que queremos heredar
   super(nom, paterno, materno, edad);
   //Pasamos los datos a los SET que se reciben en el constructor
   setNombreEscuela(escuela);
   setNumSemestre(semestre);
  }
  //Funciones o Metodos
  public void MostrarDatos(){
   System.out.println("\n::: ESTUDIANTE :::");
   System.out.println("Nombre: "+super.getApMaterno()+
     "\nApellido Paterno: "+super.getApPaterno()+
     "\nApellido Materno: "+super.getApMaterno()+
     "\nEdad: "+super.getEdad()+
     "\nEscuela: "+NomEscuela+
     "\nSemestre: "+numSemestre);   
  }
}
Código de la Clase Empleado.
//CLASE EMPLEADO QUE HEREDA DE PERSONA
 class Empleado extends Persona{
  private int numEmpleado;
  private String Puesto;
  //SET's
  public void setNumeroEmpleado(int numero){
   numEmpleado=numero;
  }
  public void setPuesto(String puesto){
   Puesto=puesto;
  }
  //GET's
  public int getNumeroEmpleado(){
   return this.numEmpleado;
  }
  public String getPuesto(){
   return this.Puesto;
  }
  //Constructor que recibe 6 argumentos
  public Empleado(String nom, String paterno, String materno, int edad, int numero, String puesto){
   //Para heredar los atributos de la clase Persona utilizamos la palabra super
   //y dentro del parentesis escogemos las variables que queremos heredar
   super(nom, paterno, materno, edad);
   //Pasamos los datos a los SET que se reciben en el constructor
   setNumeroEmpleado(numero);
   setPuesto(puesto);
  }
  //Funciones o Metodos
  public void MostrarDatos(){
   System.out.println("\n::: EMPLEADO :::");
   System.out.println("Nombre: "+super.getApMaterno()+
     "\nApellido Paterno: "+super.getApPaterno()+
     "\nApellido Materno: "+super.getApMaterno()+
     "\nEdad: "+super.getEdad()+
     "\nEmpleado #: "+numEmpleado+
     "\nPuesto: "+Puesto);   
  }
}
Código de la Clase Principal.
//Creamos la clase principal 
 class Principal {
  public static void main(String [] args){
   //Creamos nuestros objetos y mandamos la informacion en orden
   Persona Jose = new Persona("Jose", "Ramires", "Hernandez", 40);
   Estudiante Pepe = new Estudiante("Luis","Rodriguez","Gomez", 20, "ESCOM",5);
   Empleado Maria = new Empleado("Maria","Iglesias","Jimenez", 35, 123456,"Analista");
   //Mandamos a llamar los datos resultantes de cada clase
   Jose.MostrarDatos();
   Pepe.MostrarDatos();
   Maria.MostrarDatos();
  }
}
Y todo este código o choro de código es para el siguiente resultado:
 



No hay comentarios.:
Publicar un comentario