Herencia 1: Super en práctica

Hasta el momento sabemos el concepto de herencia, en esta ocasión la pondremos en practica.

 

Primeramente creamos dos clases la clase “Base” y la clase HijoUno, extendida de clase Base.

 

publicclass Base {

 

}

 

class HijoUno extends Base{

 

publicstaticvoid main(String[] args){

 

}

 

}

Super - Prueba 1

A ambas clases declaramos una variable entera con distinto valor.

En el método main de la clase HijoUno creamos un método e imprimimos dos veces el valor de la variable.

 

publicclass Base {

int  a = 100;

}

 

class HijoUno extends Base{

       int  a = 200;

        void mostrar(){

                System.out.println(a);

                System.out.println(a);

       }

       publicstaticvoid main(String[] args){

                new HijoUno().mostrar ();

       }

}

 

 

Ejecutamos y observamos el resultado.

 

Se observa que se imprimió 2 veces 200, es decir la variable “a” toma referencia de la clase HijoUno.

Super - Prueba 2

Hacemos una pequeña modificación en la clase “HijoUno” con el primer mensaje.

 

class HijoUno extends Base{

int  a = 200;

        void mostrar(){

               System.out.println(super.a);

               System.out.println(a);

        }

        publicstaticvoid main(String[] args){

               new HijoUno().mostrar ();

        }

 

}

 

Observamos que ahora imprime “100” y “200” haciendo referencia a la variable “a” de la clase “Base”.

Super – Prueba 3

Realizamos otra pequeña modificación, ahora en ambas clases y vemos lo que pasa.

 

publicclass Base {

int  a = 100;

        void mostrar(){

                System.out.println(a);

        }

}

 

class HijoUno extends Base{

        int  a = 200;

        void mostrar(){

                System.out.println(a);

        }

        publicstaticvoid main(String[] args){

                new HijoUno().mostrar ();

        }

 

}

Cuando creamos el nuevo objeto de “HijoUno” y llamamos a el método mostrar(), el método se llama directamente de la clase “HijoUno” sin tomar en cuenta el método de la clase “Base”.

Super – Prueba 4

Agregamos una linea de código en el método mostrar de la clase “HijoUno”.

 

publicclass Base {

int  a = 100;

        void mostrar(){

                System.out.println(a);

        }

}

 

class HijoUno extends Base{

        int  a = 200;

        void mostrar(){

                  super.mostrar();

              System.out.println(a);

        }

        publicstaticvoid main(String[] args){

              new HijoUno().mostrar ();

        }

}

 

 

Ahora hacemos referencia al método mostrar de la clase padre.