Las palabras clave 'this' y 'super' se utilizan en la programación Java. Estas palabras clave no se pueden usar como variables o cualquier otro nombre de identificador. Java admite programación orientada a objetos (OOP). El programa o software se puede modelar utilizando objetos. Los objetos están insaccionados usando clases. Un pilar de OOP es la herencia. Proporciona reutilización del código. Las clases que ya existen son superclase, y las clases derivadas son subclases. La palabra clave súper se puede usar para referir un objeto de la superclase. Hay múltiples objetos en el sistema. La palabra clave 'esta' se usa para referir un objeto actual. El diferencia clave Entre esto y Super está 'Esta 'es una variable de referencia que se utiliza para referir el objeto actual mientras que 'Super' es una variable de referencia que se usa para referir el objeto de superclase inmediato.
1. Descripción general y diferencia de claves
2. ¿Qué es esto en Java?
3. ¿Qué es Super en Java?
4. Similitudes entre esto y super en Java
5. Comparación de lado a lado: este VS Super en Java en forma tabular
6. Resumen
La palabra clave 'esto' 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. Según el programa anterior, el empleado de la clase tiene dos variables de instancia. Son identificación y nombre. Las variables locales son las variables pertenecen a los métodos. Las variables de clase son compartidas por todos los objetos. La identificación y el nombre se pasan al constructor de empleados. Si el programador escribe id = id; No inicializará las variables de instancia porque el constructor ya tiene ID y nombre. No hay valores, por ejemplo, variables. Entonces, imprimirlos mostrará nulo. Al usar esto, se refiere al objeto actual. Por lo tanto, dar identificación y nombre al constructor puede 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 ();
mi clase.B();
clase myclass
público vacío a ()
Sistema.afuera.println ("a");
público void b ()
Sistema.afuera.prinltn ("b");
este.A();
La clase MyClass contiene dos métodos. Son el método A y B. Al crear un objeto de myclass e invocar el método B imprimirá B, A como salida. En el método B, después de imprimir b hay una declaración como esta.A(). Usando esto, se invocó el método de clase actual.
También es posible usar esta palabra clave para invocar el constructor de clase actual. Consulte el programa dado.
clase pública thisDemo
public static void main (string [] args)
Un obj = nuevo A (5);
clase A
público a ()
Sistema.afuera.println ("Constructor A");
público a (int x)
este();
Sistema.afuera.println ("Constructor parametrizado A");
Según 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 clase actual que es un ().
La palabra clave 'super' está relacionada con la herencia. La herencia es un concepto importante de programación orientada a objetos. Permite usar las propiedades y métodos de la clase ya existente a una nueva clase. La clase ya existente se conoce como la clase principal o la superclase. La nueva clase se conoce como la clase o subclase infantil.
El 'super' es una variable de referencia que se utiliza para referir el objeto de clase principal inmediata. La palabra clave súper puede referir la variable de instancia de clase principal inmediata o invocar el método inmediato de clase principal. El super () se usa para invocar constructor de clase principal inmediata.
Suponga 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 un método de visualización.
Clase pública A
Public void display ()
Sistema.afuera.println ("a");
La clase pública B extiende un
Public void display ()
Sistema.afuera.println ("b");
Al crear un objeto de tipo B y llamar a la pantalla del método, le dará la salida B. La clase A tiene el método de visualización, pero el método de visualización de subclase B lo anula la subclase B. Si el programador quiere llamar al método de visualización de la clase A, entonces puede usar la palabra clave súper. Consulte el programa Java dado.
Figura 02: Programa Java que utiliza una palabra clave súper
Según el programa anterior, la clase A tiene una variable con nombre de número con el valor 10. La clase B extiende A y tiene una variable con nombre de número con el valor 20. En general, al crear un objeto de tipo B y llamar al método de visualización, debe dar el número en la subclase porque la nueva clase anula el valor de superclase. Usando el super.num, se imprime el valor del número de superclase.
El super () se puede usar para llamar al constructor de superclase. Consulte el siguiente programa.
clase pública Main
public static void main (string [] args)
B obj = nuevo B ();
clase A
A()
Sistema.afuera.println ("a");
La clase B extiende un
B()
súper();
Sistema.afuera.println ("b");
Según el programa anterior, la clase A tiene un constructor A (). La clase B tiene el constructor B (). Clase B extiende la clase A. Al crear un objeto de tipo B, imprimirá A, B como salida. El constructor B () tiene super (). Por lo tanto, primero se invoca el constructor A y luego va a B. Aunque super () no está escrito, por defecto, se llama al constructor principal.
El super usando el método es el siguiente.
Figura 03: Programa Java que invoca el método de superclase
Según el programa anterior, la clase A tiene el método de visualización. La clase B también tiene método de visualización. Clase B extiende un. Al crear un objeto de tipo B y llamar al método de visualización, dará la salida 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 a super.mostrar(). Ese método imprime "A" primero. Luego imprime "B".
Este VS Super | |
'Esto' es una variable de referencia que se utiliza para referir el objeto actual. | El 'super' es una variable de referencia que se utiliza para referir un objeto de superclase inmediato. |
Instancia variable | |
Se puede referir una variable de instancia de clase actual utilizando esto. | La variable de instancia de superclase se puede referir utilizando super. |
Método de clase | |
El método de clase actual se puede invocar utilizando este. | El método de superclase se puede invocar utilizando super. |
Constructor | |
El constructor de clase actual se puede invocar usando esto (). | El constructor de superclase se puede invocar usando super (). |
Las palabras clave 'this' y 'super' se usan en Java. Las palabras clave no se pueden usar 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 usa para referir el objeto de superclase inmediato, mientras que esta es una variable de referencia que refiere el objeto actual.
Puede descargar la versión PDF de este artículo y usarla para fines fuera de línea según la nota de cita. Descargue la versión PDF aquí: Diferencia entre esto y Super en Java
1.Esta () y supervisión clave en Java y su propósito con un breve ejemplo, ATOZ Knowledge, 31 de enero. 2015. Disponible aquí
2."Esta palabra clave en Java - Java Point." Disponible aquí
3.punto de tutorial.comunicarse. "Herencia de Java."El punto, disponible aquí