Home Foros Foro dudas Foro de Java Duda con el uso de métodos abstractos Respuesta a: Duda con el uso de métodos abstractos

Respuesta a: Duda con el uso de métodos abstractos

Home Foros Foro dudas Foro de Java Duda con el uso de métodos abstractos Respuesta a: Duda con el uso de métodos abstractos

#14404

Jaime
Participante

Hola Joshua, te intento explicar un poquillo esta situación:

este método paintComponent es un poco especial, porque es un método que el sistema llama internamente en determinadas ocasiones y que nosotros no llamamos nunca directamente, es decir, nunca hacemos un objeto.paintComponent(parametro).

Esto es así porque hay muchas ocasiones en que se debe repintar por ejemplo ventanas ( crear una ventana, cambiar su tamaño, maximizarlas, cambiar el foco de una a otra, …)  posibles situaciones que sería muy costoso para nosotros controlar (habría como que implementar estas posibles situaciones), así que cuando ocurren estas acciones, el sistema llama automáticamente a este método.

Como bien dices, las clases abstractas no se pueden instanciar y los métodos abstractos deben ser sobreescritos. En el caso excepcional de este método, el sistema internamente se encarga de que g sea una implementación de una instancia perteneciente a una subclase no abstracta que herede de Graphics, y al no ser abstracta.

Resumiendo, es como si en la llamada a paintComponent el sistema internamente le hiciera a g un casting a algo que sí se pueda instanciar y que tiene también los métodos abstractos de Graphics ya implementados.

Este enlace también te puede ayudar un poco a entenderlo mejor.

Sl2