Diferencia entre esto y super en Java

Tabla de contenido:

Diferencia entre esto y super en Java
Diferencia entre esto y super en Java

Video: Diferencia entre esto y super en Java

Video: Diferencia entre esto y super en Java
Video: Curso Java Intermedio #17 | La palabra reservada super en Java (POO) 2024, Mes de julio
Anonim

Diferencia clave: esto frente a super en Java

Las palabras clave 'esto' y 'super' se utilizan en la programación Java. Estas palabras clave no se pueden utilizar como variables o cualquier otro nombre identificador. Java es compatible con la Programación Orientada a Objetos (POO). El programa o software se puede modelar usando 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 se puede utilizar para referirse a un objeto de la superclase. Hay varios objetos en el sistema. La palabra clave 'esto' se usa 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 hacer referencia al objeto de superclase inmediato.

¿Qué es esto en Java?

La palabra clave 'esto' se usa para referirse a un objeto actual. Consulte el programa Java dado.

Diferencia entre esto y super en Java
Diferencia entre esto y super en Java

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, la clase Empleado tiene dos variables de instancia. Son id y nombre. Las variables locales son las variables que pertenecen a los métodos. Las variables de clase son compartidas por todos los objetos. El id y el nombre se pasan al constructor Employee. 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 instancia. 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 usar para invocar el método de clase actual. Consulte el programa java dado.

clase pública Esta demostración{

public static void main(String argumentos){

Miclase miClase=new Miclase();

miClase. B();

}

}

clase Miclase{

vacío público A(){

Sistema.fuera.println(“A”);

}

vacío público B(){

Sistema.fuera.printltn(“B”);

esto. 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, se imprimirá B, A como salida. En el método B, después de imprimir B hay una sentencia como esta. A(). Con 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 Esta demostración{

public static void main(String argumentos){

A obj=nuevo A(5);

}

}

clase A{

público A(){

Sistema.fuera.println(“Constructor A”);

}

público A(int x){

esto();

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

}

}

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 sentencia como esta(); Llamará al constructor de 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 a una nueva clase. La clase ya existente se conoce como clase padre 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. Las clases A y B tienen un método de visualización.

clase pública A{

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

Sistema.fuera.println(“A”);

}

}

clase pública B extiende A{

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

Sistema.fuera.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 dado.

Diferencia entre esto y super en Java_Figura 02
Diferencia entre esto y super en Java_Figura 02

Figura 02: programa Java usando la palabra clave super

Según el programa anterior, la clase A tiene un número con nombre variable con valor 10. La clase B extiende A y tiene un número con nombre variable con valor 20. Generalmente, al crear un objeto de tipo B y llamar al método de visualización debe dar el número en la subclase porque el valor de la superclase es anulado 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 la superclase. Consulte el siguiente programa.

clase pública principal {

public static void main(String argumentos){

B obj=nuevo B();

}

}

clase A{

A(){

Sistema.fuera.println(“A”);

}

}

clase B extiende A{

B(){

súper();

Sistema.fuera.println(“B”);

}

}

Según 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 salida. El constructor B () tiene super (). Por lo tanto, primero se invoca al constructor A y luego se pasa a B. Aunque super () no está escrito, por defecto se llama al constructor padre.

El súper usando el método es el siguiente.

Diferencia clave entre esto y super en Java
Diferencia clave entre esto y super en Java

Figura 03: programa Java que invoca el método de la 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 extiende A. Al crear un objeto de tipo B y llamar al método de visualización, se generará 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 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 súper?

Esto vs Súper

El 'esto' es una variable de referencia que se utiliza para referirse al objeto actual. El 'super' es una variable de referencia que se utiliza para referirse a un objeto de superclase inmediato.
Variable de instancia
Se puede hacer referencia a una variable de instancia de clase actual usando this. La variable de instancia de superclase se puede referir usando super.
Método de clase
El método de clase actual se puede invocar usando esto. El método de superclase se puede invocar usando super.
Constructor
El constructor de clase actual se puede invocar usando this(). El constructor de superclase se puede invocar usando super().

Resumen: esto frente a super en Java

Las palabras clave 'esto' y 'super' se usan en Java. Las palabras clave no se pueden utilizar como variables o cualquier otro nombre identificador. Parecen ser lo mismo, pero tienen una diferencia. La diferencia entre esto y super es que super es una variable de referencia que se utiliza para hacer referencia a un 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 en PDF de este artículo y utilizarlo sin conexión según la nota de la cita. Descargue la versión en PDF aquí: Diferencia entre esto y super en Java

Recomendado: