Bien, tengo una duda. Un colega y yo nos pusimos con un ejemplito basico y aver si me podeis echar un cable. Resulta que tengo una variable X de tipo int, y declarada como final, en una clase padre y por tanto por herencia, en una clase hija. A parte mandamos x a imprimirse en la clase principal y demas... blabla bla... simplemente para probar el modificador "Final" con herencia.
Nos dimos cuenta de que, al quitar el modificador "FINAL" en la clase padre, imprimia lo mismo!!.
Me quedé... . Pienso yo que no debería no? no debería crear un metodo constructor en el padre y luego mediante el uso de super() en la hija pillar ese constructor... para que resulte igual que el final?..
No entiendo porque sucede esto. Dejo un codigo de ejemplo:
Saludos!
Nos dimos cuenta de que, al quitar el modificador "FINAL" en la clase padre, imprimia lo mismo!!.
Me quedé... . Pienso yo que no debería no? no debería crear un metodo constructor en el padre y luego mediante el uso de super() en la hija pillar ese constructor... para que resulte igual que el final?..
No entiendo porque sucede esto. Dejo un codigo de ejemplo:
Código (java) [Seleccionar]
class Prueba{
public static void main(String arg[]){
Padre obj1=new Padre();
Hija obj2= new Hija();
System.out.println("En el metodo principal, clase principal (Padre): "+obj1.padre1());
System.out.println("En el metodo principal, clase principal (Hija): "+obj2.hija1());
}
}
class Padre{
final int x=5; //QUITANDO ESTE FINAL Y PONIENDOLO , RESULTA LO MISMO
public int padre1(){
System.out.println("Dentro de la clase Padre: "+x);
return x;
}
}
class Hija extends Padre{
public int hija1(){
System.out.println("Dentro de la clase hija: "+x);
return x+1;
}
}
Saludos!