jueves, 31 de marzo de 2011

Herencia

 

Con la herencia, podemos crear tantas clases que queramos y heredar sub-clases de otras sub-clases.
toda esta estructura de clases y subclases, se denomina Jerarquía de clases, un término que leerán muy a menudo.

dentro de la jerarquía de clases, tenemos a la clase superior, clase padre o clase base, que será la primera clase creada, teóricamente la clase base debe ser abstracta .

la clase inferior, o clase hija, clase heredada, subclase, es la que le precede a la clase padre. Todas estas heredaran atributos sin importar la cantidad de ancestros que existan.

La herencia también tiene otra extraordinaria cualidad: es posible ocultar o redefinir los métodos heredados.
la redefinición de los métodos ya la vimos, se trata de crear un método nuevo con el mismo nombre y mismos argumentos usando la sobrecarga.

claro esta es una redefinición total, porque sería escribiendo todo desde cero, pero podemos redefinir un método basándonos en el método heredado, es decir, no vamos a escribir desde cero, solo añadimos lo nuevo a lo que ya tenemos heredado.

tomemos la clase OperacionesMatematicas.java como clase base


public class OperacionesMatematicas {
    private int RESULTADO;
 
    public Integer sumar(int OPERANDO1,int OPERANDO2){
        RESULTADO=OPERANDO1+OPERANDO2;
        return RESULTADO;
    }
}
 
 
ahora crearé OperacionesMatematicas1.java que será la clase hija


public class OperacionesMatematicas1 extends OperacionesMatematicas{
   private int RESULTADO;
 
   public Integer sumar(int OPERANDO1, int OPERANDO2, int OPERANDO3){
      RESULTADO =super.sumar(OPERANDO1,OPERANDO2) + OPERANDO3;
        return RESULTADO;
    }        
}
 
 
ahora le daremos uso creando el objeto Sumar a partir de la clase hija:


public static void main(String[] args) {
        OperacionesMatematicas1 Sumar=new OperacionesMatematicas1();
 
        System.out.println(Sumar.sumar(30, 4,6));
    }
 
 


observen que aparecen los 2 métodos y hay una sentencia nueva llamada super
super es una variable especial que sirve para hacer referencia a la clase padre heredada, podemos tener métodos con el mismo nombre, mas sin embargo, podemos acceder a métodos ancestros mediante super. 

la redefinición la estamos haciendo en la clase OperacionesMatematicas1.java, observen que simplemente llamo a sumar de 2 argumentos (heredado) y añado la otra operación, que es sumar un tercer argumento.
 no hay desperdicio de código
en programas con cantidades industriales de lineas de código es de mucho agradecer la redefinición de métodos a través de la herencia.

 :):):):)

2 comentarios:

  1. este nos permite, expandirnos y obtener sub clases y al mismo tiempo obtenemos las jararquias, de las mismas

    ResponderEliminar
  2. podemos decir que la herencia nos permite crear subclases y que nos ayuda a utilizar mejor la herencia de manera adecuada en los aplicativos de las clases

    ResponderEliminar