En Java, si el nombre de una función estática de clase derivada es el mismo que el de una función estática de clase base, la función estática de clase base oscurece (u oculta) la función estática de clase derivada. Por ejemplo, el siguiente código Java imprime «A.fun()»
. el método del objeto.
Java
// file name: Main.java // Parent class class A { static void fun() { System.out.println("A.fun()"); } } // B is inheriting A // Child class class B extends A { static void fun() { System.out.println("B.fun()"); } } // Driver Method public class Main { public static void main(String args[]) { A a = new B(); a.fun(); // prints A.fun(); // B a = new B(); // a.fun(); // prints B.fun() // the variable type decides the method // being invoked, not the assigned object type } }
A.fun()
Nota: si hacemos que tanto A.fun() como B.fun() sean no estáticos, el programa anterior imprimiría «B.fun()». Si bien ambos métodos son tipos estáticos, el tipo de variable decide el método que se invoca, no el tipo de objeto asignado.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA