La verdad, zidboy, que te cubriste de gloria con tu primer mensaje en el foro. A parte de no fijarte quien escribe que, tener varias faltas graves de ortografia, y decir que una interface no tiene nada que ver con una clase abstracta, dices que un bloque de codigo esta mal, cuando no lo esta.
En el codigo
Código:
Fugra fig;
fig = new Cuadrado;
fig.pintar();
fig = new Triangulo;
fig.pintar();
fig = new Circulo;
fig.pintar();
no hay nada mal, excepto que falten los parentesis despues de la llamada a los constructores. No se estan instanciando distintas variables con el mismo nombre, se esta inicializando una variable varias veces, y eso si esta permitido, aunque he de reconocer que lo que tu dices de que no se puede poner el mismo nombre a distintas variables no se puede (aunque nadie lo haya dicho ni intentado).