--Introduction
Je suis un ingénieur débutant. J'ai dû écrire la suite du code écrit par une personne lorsque je codais dans l'entreprise l'autre jour. À ce moment-là, je suis resté coincé dans l'héritage de classe , constructeur </ b> et j'ai passé un temps considérable ... Quand j'ai appris à nouveau depuis le début, j'ai trouvé quelque chose que je ne comprenais pas et c'était gênant, alors j'ai décidé de le résumer à nouveau.
De plus, cet article ・ "Personnes qui touchent actuellement Java" ・ "Personnes qui souhaitent revoir le contenu" C'est pour. Veuillez lire chaque nom de classe / nom de variable comme il convient.
--Inherited class = Lors de la création d'une nouvelle classe, une classe qui hérite des mêmes parties que la fonction précédemment créée
Super.java
class Super {
public void exampleSuper(){
//Certains traitements
}
}
Sub.java
class Sub extends Super(){ //Le nom de classe étend Inherit avec le nom de classe source d'héritage.
public void exampleSub(){
//Certains traitements
}
}
--Constructor = Une méthode qui est toujours appelée automatiquement lorsqu'une instance d'une classe est créée.
Smple.java
class Sample{
public Sample(){
//Voici le constructeur
}
public void exampleMethod(){
//Ceci est juste une méthode de classe
}
}
--Lors de l'instanciation d'une classe, elle est instanciée dans l'ordre du haut de la hiérarchie d'héritage vers le bas.
●super();
Une méthode qui appelle le constructeur d'une superclasse. Les constructeurs de sous-classes exécutent implicitement (automatiquement) les constructeurs de superclasses "en tant qu'implémentation du langage", donc Il n'est pas toujours nécessaire de décrire
Super.java
class Super {
Super() {
System.out.println("Super classe!");
}
}
Sub.java
class Sub extends Super {
Sub() {
//Exécute implicitement le constructeur de superclasse
System.out.println("C'est une sous-classe!");
}
}
Main.java
class Main {
public static void main(String[] args) {
Sub obj = new Sub();
}
//Résultat d'exécution
C'est une super classe!
C'est une sous-classe!
▽ Solution ① Créez un constructeur qui n'a pas d'arguments dans la super classe
Super.java
class Super {
public name;
public Super(){
//Surcharger le constructeur
}
public Super(String name){
this.name = name;
}
}
(2) Dans le constructeur de sous-classe, appelez explicitement le constructeur de superclasse avec la méthode super (); qui correspond à l'argument du constructeur de superclasse.
Super.java
class Sub {
public name;
public Super(String name){
//Principale->sous->Définissez la valeur de la variable de nom passée dans l'ordre de super dans le champ
this.name = name;
}
}
Sub.java
class Sub extends Super {
Sub(String name) {
//Correspond au nom de la variable de type Strin de la classe principale->Passé au constructeur de super classe
super(name);
}
}
Main.java
class Main {
public static void main(String[] args) {
Sub obj = new Sub(String name);
}
}
Cela fait encore longtemps, mais merci d'avoir lu. La prochaine fois, je pense que je devrais traiter de la gestion des exceptions avec try-catch. Puis.