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.
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
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 ().
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".
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 (). |
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.
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
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í