Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: arcanFAC en 09 de Octubre 2015, 22:09

Título: diferencia entre métodos static y métodos normales en Java.
Publicado por: arcanFAC en 09 de Octubre 2015, 22:09
Hola!!!

Tengo esta situación: Supongamos que tenemos una clase A y otra clase B que hereda de A. En ambas clases tenemos, por ejemplo, 2 metodos con los mismos nombres y a su vez iguales controles de acceso. Supongamos los metodos void m1() y el otro es static void m2().

Si nosotros desde otra clase planteamos por ejemplo:

b(objeto de tipo B)
((A) b).m1();
((A) b).m2();

En la primer situación ejecutará el método de la clase B, en cambio en la segunda ejecutará el metodo de la clase A. Evidentemente esto es por el modificador static, pero puntualmente ¿por qué?. A su vez no sé que es lo que explicitamente está haciendo el cast en estos casos. Si alguien me puede aclarar esto se lo agradeceria. :D
Título: Re:Herencia. Redefinición de métodos en Java.
Publicado por: César Krall en 12 de Octubre 2015, 12:07
Hola arcanFAC, lo mejor es que pegues el código real de manera que podamos compilarlo y así ver mejor qué es lo que ocurre. En el caso de métodos declarados como static son métodos de clase, es decir, comunes a todos los objetos, un sólo método para todos los objetos, mientras que los métodos "normales" son métodos asociados a cada uno de los objetos. Saludos!