Diferencia clave: esto vs super en Java
Las palabras clave 'this' y 'super' se utilizan en la programación Java. Estas palabras clave no se pueden utilizar como variables ni como ningún otro nombre de identificador. Java es compatible con la programación orientada a objetos (OOP). El programa o software se puede modelar utilizando objetos. Los objetos son insaciables usando clases. Un pilar de la programación orientada a objetos 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 puede usarse para referirse a un objeto de la superclase. Hay varios objetos en el sistema. La palabra clave 'this' se utiliza para referirse a un objeto actual. La diferencia clave entre this y super es que 'this' es una variable de referencia que se usa para hacer referencia al objeto actual, mientras que 'super' es una variable de referencia que se usa para referirse a un objeto de superclase inmediato.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué es esto en Java
3. Qué 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
¿Qué es esto en Java?
La palabra clave 'esto' se usa para referirse a un objeto actual. Consulte el programa Java proporcionado.
Figura 01: Programa Java que utiliza 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, la clase Empleado tiene dos variables de instancia. Son identificación y nombre. Las variables locales son las variables que 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 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 las variables de ejemplo. Por lo tanto, imprimirlos mostrará nulo. Al usar esto, se refiere al objeto actual. Por lo tanto, dar id y nombre al constructor puede establecer las variables de instancia.
La palabra clave 'esto' se puede utilizar para invocar el método de clase actual. Consulte el programa Java proporcionado.
public class ThisDemo {
public static void main (String args) {
Myclass myClass = new Myclass ();
myClass. B ();
}
}
class Myclass {
public void A () {
System.out.println ("A");
}
public void B () {
System.out.prinltn ("B");
esto un();
}
}
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, 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, se invocó el método de clase actual.
También es posible utilizar esta palabra clave para invocar el constructor de la clase actual. Consulte el programa dado.
public class ThisDemo {
public static void main (String args) {
A obj = nuevo A (5);
}
}
clase A{
público A () {
System.out.println ("Constructor A");
}
público A (int x) {
esta();
System.out.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 la clase actual que es A ().
¿Qué es super en Java?
La palabra clave 'super' está relacionada con la herencia. La herencia es un concepto importante de la programación orientada a objetos. Permite usar las propiedades y métodos de la clase ya existente en una nueva clase. La clase ya existente se conoce como clase principal o superclase. La nueva clase se conoce como clase secundaria o subclase.
El 'super' es una variable de referencia que se usa para referirse al objeto de clase padre inmediato. La palabra clave super puede hacer referencia a la variable de instancia de la clase principal inmediata o invocar el método de la clase principal inmediata. El super () se usa para invocar el constructor de clase padre inmediato.
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 método de visualización.
clase pública A {
display vacío público () {
System.out.println ("A");
}
}
la clase pública B se extiende A {
display vacío público () {
System.out.println ("B");
}
}
Al crear un objeto de tipo B y llamar al método de visualización, dará la salida B. La clase A tiene el método de visualización, pero está anulado por el método de visualización de la subclase B. Si el programador quiere llamar al método de visualización en la clase A, entonces puede usar la palabra clave super. Consulte el programa Java proporcionado.
Figura 02: Programa Java con super palabra clave
De acuerdo con el programa anterior, la clase A tiene una variable denominada número con valor 10. La clase B extiende A y tiene una variable denominada número con valor 20. Generalmente, al crear un objeto de tipo B y llamar al método de visualización, se debe dar el número en la subclase porque el valor de superclase es reemplazado por la nueva clase. Al usar super.num, se imprime el valor del número de superclase.
El super () se puede usar para llamar al constructor de superclase. Consulte el programa a continuación.
public class Main {
public static void main (String args) {
B obj = nuevo B ();
}
}
clase A{
UN(){
System.out.println ("A");
}
}
la clase B se extiende A {
SEGUNDO(){
súper();
System.out.println ("B");
}
}
Según el programa anterior, la clase A tiene un constructor A (). La clase B tiene el constructor B (). La clase B amplía 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 se pasa a B. Aunque super () no está escrito, de forma predeterminada se llama al constructor padre.
El super que usa 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 un método de visualización. La clase B también tiene un método de visualización. La clase B se extiende a A. Cuando se crea un objeto de tipo B y se llama al método de visualización, se obtendrá una salida como A y B. En el método de visualización de la clase B, el método de visualización de la clase A se llama mediante 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 Java
¿Cuál es la diferencia entre esto y super?
Diferencia del medio del artículo antes de la mesa
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 | |
Se puede hacer referencia a una variable de instancia de clase actual usando esto. | Se puede hacer referencia a la variable de instancia de superclase mediante super. |
Método de clase | |
El método de la clase actual se puede invocar usando esto. | El método de superclase se puede invocar usando super. |
Constructor | |
El constructor de la clase actual se puede invocar usando this (). | El constructor de superclase se puede invocar 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 iguales, pero tienen una diferencia. La diferencia entre this y super es que super es una variable de referencia que se usa para referirse al objeto de superclase inmediato, mientras que esta es una variable de referencia que hace referencia al objeto actual.
Descarga el PDF de este vs super en Java
Puede descargar la versión PDF de este artículo y utilizarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí: Diferencia entre esto y super en Java