Maison >Java >javaDidacticiel >`super()` est-il obligatoire dans les constructeurs de sous-classes ?
Comprendre la nécessité de super() dans les constructeurs de sous-classes
Lors de la création de sous-classes en Java, la question se pose de savoir si le super() l'appel de méthode est obligatoire dans le constructeur de la sous-classe. Cet article approfondit ce sujet en apportant des éclaircissements sur les aspects suivants :
Insertion automatique de super() par le compilateur
La réponse courte à cette question est non. Le compilateur n'insère pas automatiquement un appel super() dans le constructeur de la sous-classe si cela n'est pas explicitement indiqué. Ainsi, le constructeur de sous-classe doit toujours spécifier le constructeur de superclasse qu'il a l'intention d'invoquer.
Non-existence d'équivalents de constructeur sans argument
Il est important de comprendre que ne pas mettre un appel super() dans le constructeur de sous-classe n'implique pas que le compilateur insérera un constructeur équivalent sans arguments. Si la superclasse ne dispose pas d'un constructeur sans argument accessible, l'omission de l'appel super() entraînera une erreur de compilation.
Invocation du constructeur lorsque des arguments sont présents
Considérons un constructeur de sous-classe avec des arguments. Dans ce cas, l'appel super() est requis pour spécifier le constructeur de superclasse à invoquer. Le constructeur de superclasse invoqué est principalement déterminé par les arguments réels transmis au constructeur de la sous-classe. Si aucune liste d'arguments n'est spécifiée dans l'appel super(), il invoquera le constructeur de superclasse qui correspond à l'ordre et aux types des arguments de construction de la sous-classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!