Ocultación de métodos en Java

Rupam Yadav 12 octubre 2023
  1. Implementación del concepto de ocultación de métodos en Java
  2. Diferencias entre la ocultación y la anulación de métodos en Java
Ocultació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 Yadav avatar Rupam Yadav avatar

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

Artículo relacionado - Java Method