Diferencia entre esto y super en Java

Diferencia clave - esto vs super en Java
 

Las palabras clave 'this' y 'super' se utilizan en la programación de Java. Estas palabras clave no se pueden utilizar como variables o cualquier otro nombre de identificador. Java es compatible con la programación orientada a objetos (OOP). El programa o software puede ser modelado usando objetos. Los objetos son insaciables usando clases. Un pilar de la OOP es la herencia. Proporciona reutilización de código. Las clases que ya existen son superclases, y las clases derivadas son subclases. La palabra clave super se puede utilizar para referirse a un objeto de la superclase. Hay múltiples objetos en el sistema. La palabra clave 'this' se usa para referir un objeto actual. los diferencia clave entre esto y super es 'esta 'es una variable de referencia que se usa para referirse al objeto actual mientras que 'super' es una variable de referencia que se usa para referirse al objeto de superclase inmediato. 

CONTENIDO

1. Resumen y diferencia clave
2. Que es esto en java
3. Lo que es super en Java
4. Similitudes entre esto y super en Java.
5. Comparación lado a lado - esto vs super en Java en forma tabular
6. Resumen

Que es esto en java?

La palabra clave 'this' se usa para referir un objeto actual. Consulte el programa Java dado..

Figura 01: programa Java usando esta palabra clave

En Java, hay tres tipos de variables. Son variables de instancia, variables locales y variables de clase. De acuerdo con el programa anterior, la clase Employee tiene dos variables de instancia. Son id y nombre. Las variables locales son las variables que pertenece a los métodos. Las variables de clase son compartidas por todos los objetos. El id y el nombre se pasan al constructor del empleado. Si el programador escribe id = id; no inicializará las variables de instancia porque el Constructor ya tiene id y nombre. No hay valores para variables de instancia. Por lo tanto, al imprimirlos se mostrará nulo. Al usar esto, se refiere al objeto actual. Por lo tanto, al asignar id y nombre al constructor se pueden establecer las variables de instancia..

La palabra clave 'esto' se puede usar para invocar el método de clase actual. Consulte el programa java dado.

clase pública ThisDemo

public static void main (String [] args)

Myclass myClass = new Myclass ();

myClass.B ();

clase Myclass

vacío público A ()

System.out.println ("A");

vacío público B ()

System.out.prinltn ("B");

esto un();

La clase Myclass contiene dos métodos. Son los métodos A y B. Al crear un objeto de Myclass e invocar el método B, se imprimirá B, A como salida. En el método B, después de imprimir B hay una declaración como esta.A (). Usando esto, el método de clase actual fue invocado.

También es posible utilizar esta palabra clave para invocar al constructor de clase actual. Consulte el programa dado..

clase pública ThisDemo

public static void main (String [] args)

A obj = nuevo A (5);

clase A

público A ()

System.out.println ("Constructor A");

public A (int x)

esta();

System.out.println (“Constructor parametrizado A”);

De acuerdo con el programa anterior, la clase A tiene un constructor predeterminado y un constructor parametrizado. Al crear un objeto de A, se llama al constructor parametrizado. En el constructor parametrizado, hay una declaración como esta (); Llamará al constructor de la clase actual que es A ().

Lo que es super en Java?

La palabra clave 'super' está relacionada con la herencia. La herencia es un concepto importante de programación orientada a objetos. Permite utilizar las propiedades y métodos de la clase ya existente para una nueva clase. La clase ya existente se conoce como la clase principal o superclase. La nueva clase se conoce como la clase secundaria o subclase.

El 'super' es una variable de referencia que se usa para referirse al objeto de clase padre inmediato. La súper palabra clave puede referir la variable de instancia de clase primaria inmediata o invocar el método de clase primaria inmediata. El super () se usa para invocar el constructor de clase padre inmediato.

Supongamos que hay dos clases como A y B. La clase A es la superclase y la clase B es la subclase. Clase A, B ambos tienen método de visualización.

clase pública A

visualización de vacío público ()

System.out.println ("A");

clase pública B extiende A

visualización de vacío público ()

System.out.println ("B");

Cuando se crea un objeto de tipo B y se llama a la pantalla de método, se obtiene la salida B. La clase A tiene el método de pantalla, pero se anula mediante el método de pantalla de la subclase B. Si el programador desea llamar al método de visualización en la clase A, entonces puede usar la súper palabra clave. Consulte el programa Java dado..

Figura 02: programa Java usando súper palabra clave

De acuerdo con el programa anterior, la clase A tiene una variable llamada número con el valor 10. La clase B se extiende A y tiene una variable llamada número con el valor 20. Generalmente, cuando se crea un objeto de tipo B y se llama al método de visualización, se debe dar el número la subclase porque el valor de la superclase es reemplazado por la nueva clase. Al utilizar el super.num, se imprime el valor del número de superclase.

El super () se puede utilizar para llamar al constructor de la superclase. Consulte el siguiente programa.

clase pública principal

public static void main (String [] args)

B obj = nuevo B ();

clase A

UNA()

System.out.println ("A");

la clase B se extiende A

SEGUNDO()

súper();

System.out.println ("B");

De acuerdo con el programa anterior, la clase A tiene un constructor A (). La clase B tiene el constructor B (). La clase B extiende la clase A. Al crear un objeto de tipo B, imprimirá A, B como la salida. El constructor B () tiene super (). Por lo tanto, primero se invoca el constructor A y luego va a B. Aunque no se escribe super (), de forma predeterminada se llama al constructor principal.

El super uso del método es el siguiente.

Figura 03: programa Java que invoca el método de superclase

De acuerdo con el programa anterior, la clase A tiene un método de visualización. La clase B también tiene método de visualización. La clase B se extiende A. Cuando se crea un objeto de tipo B y se llama al método de visualización, se obtiene un resultado como A y B. En el método de visualización de clase B, el método de visualización de clase A se llama utilizando super.display (). Ese método imprime "A" primero. Luego imprime "B".

¿Cuál es la similitud entre esto y super??

  • Ambas son palabras clave en la programación de Java..

¿Cuál es la diferencia entre esto y super??

Esto vs Super

El 'esto' es una variable de referencia que se usa para referirse al objeto actual. El 'super' es una variable de referencia que se usa para referirse a un objeto de superclase inmediato.
 Instancia variable
Una variable de instancia de clase actual puede ser referida usando este. La variable de instancia de Superclass puede ser referida usando super.
Método de clase
El método de clase actual puede ser invocado usando este. El método de superclase puede ser invocado usando super.
 Constructor
El constructor de la clase actual se puede invocar usando este (). El constructor de superclase puede invocarse usando super ().

Resumen - esto vs super en Java

Las palabras clave 'this' y 'super' se utilizan en Java. Las palabras clave no se pueden utilizar como variables o cualquier otro nombre de identificador. Parecen ser los mismos, pero tienen una diferencia. La diferencia entre esto y super es que super es una variable de referencia que se utiliza para referirse al objeto de superclase inmediato, mientras que esta es una variable de referencia que refiere al objeto actual.

Descarga el PDF de este vs super en Java.

Puede descargar la versión en PDF de este artículo y usarla para fines fuera de línea, como se indica en la nota de cita. Por favor descargue la versión PDF aquí: Diferencia entre esto y super en Java

Referencia:

1.Esta palabra clave () y súper en java y su propósito con un breve ejemplo, conocimiento de Atoz, 31 de enero de 2015. Disponible aquí 
2. "Esta palabra clave en java - java punto". Disponible aquí  
3.tutorialspoint.com. "Herencia de Java". El punto, Disponible aquí