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){
}
}
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.
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”.
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”.
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.