web-dev-qa-db-fra.com

Signification du mot-clé Super

Quelle est la signification et l'utilisation du mot clé super en Java?

35
User

super est un mot-clé en Java. Il s'agit de la propriété des parents immédiats.

super()            //refers parent's constructor
super.getMusic();  //refers to the parent's method

- En savoir plus sur super

58
Jigar Joshi

Le mot clé super fait référence à l'instance de la classe parente (Object, implicitement) de l'objet actuel. Ceci est utile lorsque vous remplacez une méthode dans une sous-classe mais souhaitez toujours appeler la méthode définie dans la classe parente. Par exemple:

class ClassOne { 
     public say() { 
      System.out.println("Here goes:");
  }
}

class ClassTwo extends ClassOne { 
          public say() {
            super.say();
            System.out.println("Hello"); 
   } 
 }

Maintenant, new ClassTwo().say() affichera:

Here goes:
Hello

Comme d'autres l'ont mentionné, super() appellera le constructeur du parent, et il ne peut être appelé qu'à partir du constructeur de la sous-classe (quelqu'un me corrige si je me trompe).

35
Felix

Lorsque vous héritez d'une autre classe, vous souhaiterez peut-être remplacer une méthode de la classe dont vous héritez.

Lorsque vous effectuez cette opération, vous devez parfois appeler la méthode redéfinie en premier, puis faire quelque chose après. Dans ce cas, vous écrivez super ();

Voici quelques liens sur l'héritage, c'est très important dans la programmation: Héritage de Wiki

ne courte explication d'Oracle

4
Anders Metnik

Le super mot-clé n'est pas spécifique à Android. C'est un concept appartenant à la POO et représente la classe parente de la classe dans laquelle vous l'utilisez. Dans Android, il est surtout utile lorsque vous créez votre propre activité ou composant, et vous permet d'appeler un comportement par défaut avant d'implémenter le vôtre.

Par exemple, les super méthodes doivent être appelées avant tout lorsque vous surchargez les méthodes Activity onPause, on Resume, onStop etc ...

Pour plus d'informations, je vous suggère de consulter les livres de programmation orientée objet, ainsi que les livres de programmation Java, qui devraient couvrir le sujet plus en profondeur.

3
XGouchet
  1. Dire simplement que le nom implique que "super" pointe vers la super classe, c'est-à-dire la classe parent immédiate.

  2. Il est destiné à obtenir une instance immédiate de super classe, que ce soit une méthode ou des variables.

  3. Comme je l'ai indiqué, super peut être utilisé pour récupérer une instance de classe parent immédiate en cas d'héritage à plusieurs niveaux, cela ne fonctionnera pas si vous essayez d'obtenir une instance de classe parent extrême.

  4. vous avez besoin de super uniquement lorsque les classes parent et enfant ont des méthodes de même nom et de même type

  5. Vous savez peut-être que le constructeur sera créé automatiquement créé par le compilateur une fois la classe déclarée de la même manière que super () sera créé par le compilateur à l'intérieur du constructeur comme première instruction ......

J'espère que cela vous a aidé ... passez une bonne journée (S)

2