Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Herencia en java

Hola javaHispanos, tengo una duda sobre la herencia, cuando yo heredo de una super clase un método que ya se declaró y se definió, en una sub-clase y defino más código en ese mismo método, me imprime lo de la super-clase y la sub-clase o solo la de la subclase, claro instan-ciando de la sub-clase

abril 24, 2015 | Unregistered CommenterJulian

No defines "más código" en ese mismo método, lo que haces es sustituir el método de la superclase con el de la subclase. Por ejemplo:


public class MiSuperClase {
public String miMetodo() {
return "¡¡Soy Super!!";
}
}

public class MiSubClase extends MiSuperClase {
@Override
public String miMetodo() {
return "soy sub :-(";
}
}

public class MiOtraSubClase extends MiSuperClase {
@Override
public String miMetodo() {
// Para invocar un método de la superclase inmediata, se usa super.<metodo>
return super.miMetodo() + " (bueno, casi)";
}
}


public class Test() {
public static void main(String[] args) {
MiSuperClase c1 = new MiSuperClase();
MiSubClase c2 = new MiSubClase);
MiOtraSubClase c3 = new MiOtraSubClase();

// Imprime "miMetodo de MiSuperClase dice: ¡¡Soy Super!!"
System.out.println("miMetodo de MiSuperClase dice: " + c1.miMetodo());

// Imprime "miMetodo de MiSubClase dice: soy sub :-("
System.out.println("miMetodo de MiSubClase dice: " + c2.miMetodo());

// Imprime "miMetodo de MiOtraSubClase dice: ¡¡Soy Super!! (bueno, casi)"
System.out.println("miMetodo de MiOtraSubClase dice: " + c3.miMetodo());

En la especificación del lenguaje Java se explica mejor.

abril 27, 2015 | Registered Commenterrickiees