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
-
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
-
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!