Après avoir spécifié un constructeur de paramètres lors de la création d'une classe, le système ne créera pas de constructeur sans paramètre par défaut et il doit être créé manuellement par vous-même.
Lors de la création d'une instance d'objet d'une sous-classe, le constructeur sans paramètre de la classe parent (le constructeur par défaut) sera appelé par défaut.
Si la classe parent ne définit pas un constructeur sans paramètre, une erreur sera signalée pendant l'étape de compilation.
Si la sous-classe spécifie le constructeur de paramètres de la classe parent, il peut être compilé et exécuté.
Déclaration de sous-classe Super (id, ville) montre que le constructeur de paramètre de classe parent est appelé
Package cn.lw.testpkg; / ** * @Author Wanglei 18 avril 2018 * / class PredEsseur {private int id; ville de cordes privée; Public PredEsseur (int id, String City) {this.id = id; this.city = ville; } @Override public String toString () {return "PredEsseur [id =" + id + ", city =" + city + "]"; }} La classe successeur étend PredEsseur {Nom de chaîne privée; Sexe à cordes privées; Successeur public (nom de chaîne, String Sex, int id, String City) {super (id, ville); this.name = name; this.sex = sexe; } @Override public String toString () {return "successeur [name =" + name + ", sexe =" + sexe + "]"; }} classe publique CallConstructOrest {public static void main (String [] args) {successeur s2 = nouveau successeur ("a", "mâle", 1, "hz"); System.out.println (S2); }}Sortir
Successeur [nom = a, sexe = mâle]
La classe parent ne définit pas un constructeur sans paramètres, et la classe infantile ne déclare pas super (id, ville)
Successeur public (nom de chaîne, String Sex) {this.name = name; this.sex = sexe;}Erreur de compilation
Le prédéditeur de super constructeur implicite n'est pas défini. Doit invoquer explicitement un autre constructeur
La classe parent affiche la définition du constructeur sans paramètre, la transitivité des appels de méthode
Package cn.lw.testpkg; / ** * @Author Wanglei 18 avril 2018 * / class PredEsseur {private int id; ville de cordes privée; Public PredEsseur () {System.out.println ("Appelez le constructeur sans le paramètre de prédéditeur"); } Public PredEsseur (int id, String City) {this.id = id; this.city = ville; } @Override public String toString () {return "PredEsseur [id =" + id + ", city =" + city + "]"; }} La classe successeur étend PredEsseur {Nom de chaîne privée; Sexe à cordes privées; Successeur public () {System.out.println ("Le constructeur sans paramètres du successeur a été appelé"); } Successeur public (nom de chaîne, String Sex) {this.name = name; this.sex = sexe; } @Override public String toString () {return "successeur [name =" + name + ", sexe =" + sexe + "]"; }} classe publique CallConstructOrest {public static void main (String [] args) {successeur s = new successeur (); System.out.println (s); System.out.println ("-----------------------"); Successeur s2 = nouveau successeur ("a", "mâle"); System.out.println (S2); }}Sortir
Appelé le constructeur sans paramètres. Appelé le constructeur sans paramètres.
Successeur [name = null, sexe = null]
--------------
Appelé le constructeur prédéditeur sans arguments
Successeur [nom = a, sexe = mâle]
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.