Ocultación de métodos en Java
- Implementación del concepto de ocultación de métodos en Java
- Diferencias entre la ocultación y la anulación de métodos en Java
En este artículo, veremos el concepto de ocultación de métodos en Java. La ocultación de métodos es similar a la anulación, pero entra en juego cuando se usa la misma firma de método para funciones estáticas en clases secundarias y primarias.
Implementación del concepto de ocultación de métodos en Java
En el siguiente ejemplo, tomamos tres clases, una clase Parent
y Child
con la clase JavaExample
con el método main()
. La clase Child
hereda la clase Parent
. Tanto las clases Parent
como Child
tienen dos métodos.
En la clase Parent
, tenemos un método llamado methodST()
que es una función estática
y devuelve un String. La clase Child
también tiene un methodST()
con el mismo tipo de retorno y es estático; sólo se cambia la cadena.
Como ambos métodos son estáticos, podemos llamarlos usando los nombres de las clases, y cuando llamamos al methodST()
desde la clase Parent
, se llama a su método y se imprime la cadena.
Pero cuando llamamos a la función methodST()
de la clase Child
, su método se ejecuta en lugar de la clase Parent
, incluso si hereda la clase Parent
. Se llama Ocultación de método porque el niño oculta el método del padre.
Supongamos que creamos dos objetos, uno de la clase Parent
y otro de la clase Child
. El método Parent
solo se llama porque la referencia es para Parent
, y los métodos estáticos se adjuntan a las referencias de las clases en lugar de a sus objetos.
class Parent {
public static String methodST() {
return "methodST() of Parent class";
}
}
class Child extends Parent {
public static String methodST() {
return "methodST() of Child class";
}
}
public class JavaExample {
public static void main(String[] args) {
System.out.println("Parent.methodST(): " + Parent.methodST());
System.out.println("Child.methodST(): " + Child.methodST());
System.out.println();
Parent parent = new Parent();
Parent childParent = new Child();
System.out.println("parent.methodST(): " + parent.methodST());
System.out.println("childParent.methodST(): " + childParent.methodST());
}
}
Producción :
Parent.methodST(): methodST() of Parent class
Child.methodST(): methodST() of Child class
parent.methodST(): methodST() of Parent class
childParent.methodST(): methodST() of Parent class
Diferencias entre la ocultación y la anulación de métodos en Java
Necesitamos métodos estáticos tanto en la clase principal como en la secundaria para ocultar métodos, mientras que la anulación funciona con métodos no estáticos.
Al anular, los métodos se llaman usando el objeto de tiempo de ejecución, mientras que el compilador llama a los métodos estáticos usando la referencia de una clase en la ocultación de métodos.
La ocultación de métodos también se conoce como enlace temprano, mientras que la anulación se conoce como enlace tardío.
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn