Différence entre this et super en Java

Table des matières:

Différence entre this et super en Java
Différence entre this et super en Java

Vidéo: Différence entre this et super en Java

Vidéo: Différence entre this et super en Java
Vidéo: EXPLAIN DIFFERENCE BETWEEN THIS AND SUPER IN JAVA DEMO 2024, Décembre
Anonim

Différence clé - ce vs super en Java

Les mots clés 'this' et 'super' sont utilisés dans la programmation Java. Ces mots clés ne peuvent pas être utilisés comme variables ou tout autre nom d'identifiant. Java prend en charge la programmation orientée objet (POO). Le programme ou le logiciel peut être modélisé à l'aide d'objets. Les objets sont insatiables à l'aide de classes. L'un des piliers de la POO est l'héritage. Il fournit la réutilisabilité du code. Les classes qui existent déjà sont des superclasses et les classes dérivées sont des sous-classes. Le mot clé super peut être utilisé pour référencer un objet de la superclasse. Il y a plusieurs objets dans le système. Le mot-clé "this" est utilisé pour référencer un objet courant. La principale différence entre this et super est que "this" est une variable de référence utilisée pour référencer l'objet actuel, tandis que "super" est une variable de référence utilisée pour référencer un objet de superclasse immédiat.

Qu'est-ce que c'est en Java ?

Le mot clé 'this' est utilisé pour faire référence à un objet courant. Reportez-vous au programme Java donné.

Différence entre this et super en Java
Différence entre this et super en Java

Figure 01: Programme Java utilisant ce mot clé

En Java, il existe trois types de variables. Ce sont des variables d'instance, des variables locales et des variables de classe. Selon le programme ci-dessus, la classe Employee a deux variables d'instance. Ce sont l'identifiant et le nom. Les variables locales sont les variables appartenant aux méthodes. Les variables de classe sont partagées par tous les objets. L'ID et le nom sont passés au constructeur Employee. Si le programmeur écrit id=id; il n'initialisera pas les variables d'instance car le constructeur a déjà un identifiant et un nom. Il n'y a pas de valeurs pour les variables d'instance. Ainsi, les imprimer affichera null. Lorsque vous l'utilisez, il fait référence à l'objet actuel. Par conséquent, donner un identifiant et un nom au constructeur peut définir les variables d'instance.

Le mot clé 'this' peut être utilisé pour invoquer la méthode de classe actuelle. Reportez-vous au programme Java donné.

classe publique ThisDemo{

public static void main(String args){

Maclasse maClass=new Maclasse();

maClasse. B();

}

}

class Maclasse{

public void A(){

System.out.println(“A”);

}

vide public B(){

System.out.printltn(“B”);

this. A();

}

}

La classe Myclass contient deux méthodes. Ce sont les méthodes A et B. Lors de la création d'un objet de Myclass et de l'appel de la méthode B, B, A sera imprimé en sortie. Dans la méthode B, après l'impression de B, il y a une instruction comme this. A(). En utilisant ceci, la méthode de classe actuelle a été invoquée.

Il est aussi possible d'utiliser ce mot clé pour invoquer le constructeur de la classe courante. Reportez-vous au programme donné.

classe publique ThisDemo{

public static void main(String args){

Un obj=nouveau A(5);

}

}

classe A{

public A(){

System.out.println(“Constructeur A”);

}

public A(int x){

ceci();

System.out.println(“Constructeur paramétré A”);

}

}

Selon le programme ci-dessus, la classe A a un constructeur par défaut et un constructeur paramétré. Lors de la création d'un objet de A, le constructeur paramétré est appelé. Dans le constructeur paramétré, il y a une déclaration comme this(); Il appellera le constructeur de classe actuel qui est A().

Qu'est-ce que super en Java ?

Le mot clé 'super' est lié à l'héritage. L'héritage est un concept majeur de la programmation orientée objet. Il permet d'utiliser les propriétés et les méthodes de la classe déjà existante dans une nouvelle classe. La classe déjà existante est connue sous le nom de classe parente ou superclasse. La nouvelle classe est connue sous le nom de classe ou sous-classe enfant.

Le 'super' est une variable de référence utilisée pour référencer l'objet de classe parent immédiat. Le mot-clé super peut faire référence à une variable d'instance de classe parent immédiate ou invoquer une méthode de classe parent immédiate. Le super() est utilisé pour invoquer le constructeur de la classe parent immédiate.

Supposons qu'il existe deux classes en tant que A et B. La classe A est la superclasse et la classe B est la sous-classe. Les classes A et B ont toutes deux une méthode d'affichage.

classe publique A{

public void display(){

System.out.println(“A”);

}

}

la classe publique B étend A{

public void display(){

System.out.println(“B”);

}

}

Lors de la création d'un objet de type B et de l'appel de la méthode display, il donnera la sortie B. la classe A a la méthode display, mais elle est remplacée par la méthode display de la sous-classe B. Si le programmeur souhaite appeler la méthode d'affichage dans la classe A, il peut utiliser le mot-clé super. Reportez-vous au programme Java donné.

Différence entre ceci et super en Java_Figure 02
Différence entre ceci et super en Java_Figure 02

Figure 02: Programme Java utilisant un super mot-clé

Selon le programme ci-dessus, la classe A a une variable nommée number avec la valeur 10. La classe B étend A et a une variable nommée number avec la valeur 20. Généralement, lors de la création d'un objet de type B et de l'appel de la méthode d'affichage doit donner le numéro dans la sous-classe car la valeur de la superclasse est remplacée par la nouvelle classe. En utilisant le super.num, la valeur du numéro de la superclasse est imprimée.

Le super() peut être utilisé pour appeler le constructeur de la superclasse. Reportez-vous au programme ci-dessous.

classe publique Main {

public static void main(String args){

B obj=nouveau B();

}

}

classe A{

A(){

System.out.println(“A”);

}

}

la classe B étend A{

B(){

super();

System.out.println(“B”);

}

}

Selon le programme ci-dessus, la classe A a un constructeur A (). La classe B a le constructeur B (). La classe B étend la classe A. Lors de la création d'un objet de type B, il imprimera A, B en sortie. Le constructeur B () a super (). Par conséquent, le constructeur A est d'abord appelé, puis passe à B. Même si super() n'est pas écrit, par défaut le constructeur parent est appelé.

Le super utilisant la méthode est le suivant.

Différence clé entre this et super en Java
Différence clé entre this et super en Java

Figure 03: Programme Java qui invoque la méthode de la superclasse

Selon le programme ci-dessus, la classe A a une méthode d'affichage. La classe B a également une méthode d'affichage. La classe B étend A. Lors de la création d'un objet de type B et de l'appel de la méthode d'affichage, la sortie sera A et B. Dans la méthode d'affichage de classe B, la méthode d'affichage de classe A est appelée à l'aide de super.display(). Cette méthode imprime "A" en premier. Puis imprime "B".

Quelle est la similitude entre ceci et super ?

Les deux sont des mots-clés dans la programmation Java

Quelle est la différence entre ça et super ?

Ça contre Super

Le 'this' est une variable de référence qui est utilisée pour référencer l'objet courant. Le 'super' est une variable de référence utilisée pour référencer un objet de superclasse immédiate.
Variable d'instance
Une variable d'instance de la classe actuelle peut être référencée en utilisant this. La variable d'instance de superclasse peut être référencée en utilisant super.
Méthode de classe
La méthode de classe actuelle peut être appelée en utilisant this. La méthode Superclass peut être appelée en utilisant super.
Constructeur
Le constructeur de la classe actuelle peut être appelé en utilisant this(). Le constructeur de la superclasse peut être appelé en utilisant super().

Résumé - ce vs super en Java

Les mots clés 'this' et 'super' sont utilisés en Java. Les mots clés ne peuvent pas être utilisés comme variables ou tout autre nom d'identifiant. Ils semblent être les mêmes, mais ils ont une différence. La différence entre this et super est que super est une variable de référence qui est utilisée pour faire référence à un objet de superclasse immédiat alors que c'est une variable de référence qui fait référence à l'objet actuel.

Télécharger le PDF de ce vs super en Java

Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne conformément à la note de citation. Veuillez télécharger la version PDF ici: Différence entre ceci et super en Java

Conseillé: