--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.