
Polimorfismo :DDD
Publicado por Jordi (135 intervenciones) el 09/06/2017 13:04:31
Hola chicas y chicos del Foro,
os cuento, resulta que llevo cuatro meses feliz de la vida creyendo conocer el concepto de Polimorfismo. Leyendo algunos post, al encontrarme con sentencias de Java que usan el polimorfismo no acababa de entender lo que querían decir, pero creyendo que la causa de no entenderlo era que no estaba concentrado en ese momento, el sueño, o mi bajo C. Intelectual, continuaba leyendo haciendo el acto de fe de que el polimorfismo que acababa de leer era una forma de pasar datos de un sitio a otro. Hasta que hoy, leyendo la documentación de jOpenDocument... ¡BOOM! ¡Me encuentro con que en realidad no tenía "ni puñetera idea" de que era el polimorfismo! He releído algunos artículos que hablan de este, y me he quedado con cara de O.o
Dejo un pequeño código que he hecho para "experimentar" para que veáis que parte del polimorfismo no entiendo:
¿Porqué la variable 'palabra' de la clase B no se pierde al hacer la transformación a tipo A?
¿Porque salta error de compilación si trato de hacer b = a; pero no salta este error si lo hago mediante b = (B)a;?
Mediante pruebas he pillado la mecánica del Polimorfismo, pero no le encuentro la lógica :(
Un abrazo.
os cuento, resulta que llevo cuatro meses feliz de la vida creyendo conocer el concepto de Polimorfismo. Leyendo algunos post, al encontrarme con sentencias de Java que usan el polimorfismo no acababa de entender lo que querían decir, pero creyendo que la causa de no entenderlo era que no estaba concentrado en ese momento, el sueño, o mi bajo C. Intelectual, continuaba leyendo haciendo el acto de fe de que el polimorfismo que acababa de leer era una forma de pasar datos de un sitio a otro. Hasta que hoy, leyendo la documentación de jOpenDocument... ¡BOOM! ¡Me encuentro con que en realidad no tenía "ni puñetera idea" de que era el polimorfismo! He releído algunos artículos que hablan de este, y me he quedado con cara de O.o
Dejo un pequeño código que he hecho para "experimentar" para que veáis que parte del polimorfismo no entiendo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Instrucciones{
public static void main(String[] args) {
A a = new A(); //A no tiene nada.
B b = new B(); //B tiene una palabra con su getter.
a = b; //A se transforma en B.
System.out.println(((B)a).getPalabra()); //Haciendo un cambio de tipo, es como si A hubiera amacenado los datos de B, pese a que A no tiene nada.
}
}
class A{}
class B extends A{
private final String palabra = "sample_text";
public String getPalabra(){
return palabra;
}
}
¿Porqué la variable 'palabra' de la clase B no se pierde al hacer la transformación a tipo A?
¿Porque salta error de compilación si trato de hacer b = a; pero no salta este error si lo hago mediante b = (B)a;?
Mediante pruebas he pillado la mecánica del Polimorfismo, pero no le encuentro la lógica :(
Un abrazo.
Valora esta pregunta


0