Redefinicion de metodos VS metodos abstractos

La clase Aplicacion funciona igual si pongo el metodo dibujar abstracto en la clase figura. NO ENTIENDO LA DIFERENCIA. Alguien me puede ayudar?

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de santos.r09

Metodo abstract no lleva cuerpo {}

Si lo pones abstract en Figura, seria asi:
 
y tendrias que implementarlo (sobreescribirlo) en las clases concretas Cuadrado y Triangulo (asi como estan ahorita en cada una de esas clases).
Saludos

Imagen de beto.bateria

Imaginate que la clase

Imaginate que la clase abstract se compone de una clase normal y de una interface, todos los metodos en donde pones abstract los tienes que implementar, en donde no lo pones se sobreescribe el metodo si lo llegas a implementar.

Cuando le pones abstrac (y a

Cuando le pones abstrac (y a la clase tambien) estas diciendo que no se puede crear un nuevo objeto de ese tipo, no puedes escribir esto:

 

porque es una figura abstracta, podrias pensar que no existe en realidad.

La razon por la que no ves ninguna diferencia es porque las dos subclases estan proveyendo el comportamiento del m'etodo dibujar.

Para que veas la diferencia, cambia el nombre a otra cosa ( draw() por ejempo ) y veras que el compilador te avisa que no estas proporcionando el codigo del metodo abstracto.