super() en Java
Est super()
utilisé pour appeler le constructeur parent?
Veuillez expliquer super()
.
- A pour être plus précis, ou tout simplement lire la documentation...
- En lien avec l'appel super() vérifier que cette réponse est bien. stackoverflow.com/questions/34349164/...
- Expliqué ici: Java: un Appel à super()
Vous devez vous connecter pour publier un commentaire.
super()
appelle le parent constructeur sans arguments.Il peut également être utilisé avec des arguments. I. e.
super(argument1)
et il va appeler le constructeur qui accepte 1 paramètre de type deargument1
(s'il existe).Il peut être également utilisé pour appeler des méthodes de la mère. I. e.
super.aMethod()
Plus d'infos et tutoriel ici
super(...)
ne peut être utilisé comme première instruction dans un constructeur.Quelques faits:
super()
est utilisée pour appeler le parent immédiat.super()
peut être utilisé avec les membres de l'instance, c'est à dire, les variables d'instance et des méthodes d'instance.super()
peut être utilisé à l'intérieur d'un constructeur à appeler le constructeur de la classe parent.OK, maintenant nous allons mettre en œuvre concrètement ces points de
super()
.Découvrez la différence entre le programme 1 et 2. Ici, le programme de 2 preuves de notre première déclaration de
super()
en Java.Programme 1
De sortie:
Maintenant découvrez le programme 2 et essayer de comprendre la différence principale.
Programme 2
De sortie:
Dans le programme 1, le résultat a été que de la classe dérivée. Il ne pouvait pas imprimer la variable ni de la classe de base, ni la classe parent. Mais dans le programme 2, nous avons utilisé
super()
variablea
lors de l'impression de sa sortie, et au lieu de l'impression de la valeur de la variablea
de la classe dérivée, il a imprimé la valeur de la variablea
de la classe de base. Donc, il s'avère quesuper()
est utilisée pour appeler le parent immédiat.OK, maintenant découvrez la différence entre le programme 3 et le programme 4.
Programme 3
De sortie:
Ici, la sortie est de 200. Quand nous avons appelé
Show()
, leShow()
fonction de la classe dérivée a été appelé. Mais que devons-nous faire si nous voulons appeler laShow()
fonction de la classe parent? Découvrez le programme 4 de la solution.Programme 4
De sortie:
Nous avons ici deux sorties, 100 et 200. Lorsque le
Show()
fonction de la classe dérivée est appelée, elle appelle d'abord laShow()
fonction de la classe parent, parce que à l'intérieur de laShow()
fonction de la classe dérivée, nous avons appelé leShow()
fonction de la classe parente en mettant lesuper
mot-clé avant le nom de la fonction.super()
n'est pas un mot-clé. C'est un constructeur d'invocation.super
est un mot-clé, et les #1 et #2 n'a de sens qu'avec cette définition.Source de l'article: Java: un Appel à super()
Oui.
super(...)
appeler le constructeur de la super-classe.Illustration:
Stand alone exemple:
Imprime:
super()
il va invoquer le constructeur de la super-classe qui ne prend pas d'arguments. De même, il invoquera le 1-argument du constructeur si vous nesuper(arg1)
, et ainsi de suite.super()
ne sera pas valide d'un appel.Oui.
super()
est une utilisation particulière de lasuper
mot-clé lorsque vous appelez un sans paramètre constructeur parent. En général, lasuper
mot-clé peut être utilisé pour appeler des méthodes de remplacement, l'accès des champs cachés ou d'appeler un constructeur de la superclasse.Voici la tutoriel officiel
super()
est utilisée pour appeler le constructeur parent,super.myMethod()
est utilisé pour appeler une méthode redéfinie.L'appel de la non-arguments super constructeur est juste un gaspillage d'espace à l'écran et le temps du programmeur. Le compilateur génère exactement le même code, si vous l'écrire ou pas.
Oui,
super()
(en minuscules) appelle le constructeur de la classe parent. Vous pouvez inclure des arguments:super(foo, bar)
Il y a aussi un
super
mot-clé, que vous pouvez utiliser dans les méthodes pour appeler une méthode de la super-classeUn rapide google pour "Java super" résultats dans cette
Qui est correct. Super est utilisé pour appeler le constructeur parent. Supposons donc que vous avez un bloc de code comme
Ensuite, vous pouvez affecter une valeur à la variable membre n.
J'ai vu toutes les réponses. Mais tout le monde a oublié de mentionner un point très important:
super() doit être appelée ou utilisé dans la première ligne du constructeur.
Juste super(); seul va appeler le constructeur par défaut, s'il existe une classe de super-classe. Mais vous devez écrire explicitement le constructeur par défaut de vous-même. Si vous n'avez pas Java va générer pour vous sans implémentations, enregistrer super(); , se référant à l'universel super-classe de l'Objet, et vous ne pouvez pas l'appeler dans une sous-classe.
Par exemple, en sélénium de l'automation, vous avez un PageObject qui peut utiliser l'un de ses parents constructeur comme suit:
Constructeurs
Dans un constructeur, vous pouvez l'utiliser sans un point d'appeler un autre constructeur.
super
appelle un constructeur de la super-classe;this
appelle un constructeur de cette classe :super
est utile si la super-classe doit s'initialiser.this
est utile pour vous permettre d'écrire tout le code d'initialisation d'une seule fois dans l'un des constructeurs et de l'appeler à partir de tous les autres, beaucoup plus facile à écrire des constructeurs.Méthodes
Dans une méthode, vous pouvez l'utiliser avec un point d'appeler une autre méthode.
super.method()
appelle une méthode de la super-classe;this.method()
appelle une méthode dans cette classe :super
est utile dans certains cas: si votre classe a la même méthode que votre super-classe, Java suppose que vous voulez que celui de votre classe;super
vous permet de demander la super-classe de la méthode à la place.this
est utile uniquement comme un moyen de rendre votre code plus lisible.La super mot-clé peut être utilisé pour appeler le constructeur de la superclasse et à se référer à un membre de la super-classe
Lorsque vous appelez super() avec les bons arguments, nous avons fait appel au constructeur Boîte de, qui initialise les variables largeur, hauteur et profondeur, qui lui est soumise en utilisant les valeurs des paramètres correspondants. Vous ne reste plus qu'à initialiser la valeur ajoutée de poids. Si nécessaire, vous pouvez le faire maintenant de variables de classe de la Zone comme privé. Mettre bas dans les champs de la classe Box privé modificateur et assurez-vous que vous pouvez y accéder sans aucun problème.
À la super-classe peut avoir plusieurs versions surchargées de constructeurs, de sorte que vous pouvez appeler la méthode super() avec des paramètres différents. Le programme va effectuer le constructeur qui correspond à l'argument spécifié.
super est un mot-clé. Il est utilisé à l'intérieur d'une sous-classe de définition de la méthode à appeler une méthode de la super-classe. Privé méthodes de la super-classe ne peut pas être appelé. Seulement publiques et protégées méthodes peuvent être appelées par le mot-clé super. Il est également utilisé par les constructeurs de classe pour appeler les constructeurs de la classe parente.
Vérifier ici pour de plus amples explications.
Comme indiqué, à l'intérieur du constructeur par défaut il y a un implicite super() appelé le première ligne du constructeur.
Ce super() appelle automatiquement un de la chaîne de constructeurs à partir du haut de la hiérarchie de classe et se déplace vers le bas de la hiérarchie .
Si il y avait plus de deux classes dans la hiérarchie de classe du programme, la classe supérieure de constructeur par défaut serait d'obtenir appelé première.
Voici un exemple de ceci:
Ci-dessus serait de sortie:
Mot-clé Super en java
Super mot-clé est une variable de référence qui est utilisé pour se référer parent de la classe de l'objet.
Pourquoi utiliser le mot-clé super en java ?
Chaque fois qu'hériter de la base de données de classe en classe dérivée c'est une chance d'obtenir l'ambiguïté, en raison peut-être de la classe de base et la classe dérivée des données sont les mêmes
donc, à la différence de ces données nécessaire à l'utilisation du mot clé super
Mot-clé Super au niveau de la méthode ?
Mot-clé Super est également utilisé pour appeler le parent méthode de classe.
Super mot-clé doit être de les utiliser en cas de redéfinition de méthode.
Lors de l'utilisation du mot clé Super au niveau de la méthode ?
Mot-clé Super utiliser lors de la classe de base nom de la méthode et méthode de la classe dérivée nom de ont le même nom.
http://www.tutorial4us.com/java/java-super-keyword
super()
est valide. Si c'était une variable de référence qui ne serait pas valide. C'est un mot avec plus d'une utilisation possible.