Si vous ne comprenez pas cela en premier lieu, c'est une sorte de gâchis.
Apparemment, c'est une «méthode» en termes d'image.
Je ne sais pas si c'est correct, mais quand je l'ai recherché, je n'ai pu trouver qu'une explication telle que «~ parfois utilisé».
Je ne sais pas ce qui se passe lorsque j'utilise super, alors je l'écris comme ça et j'obtiens une erreur
public class Oya {
private String name;
private int score;
//constructeur
public Oya(String name, int score) {
this.name = name;
this.score = score;
}
//Obturateur qui vous permet de lire la valeur d'une variable à partir d'une classe enfant
public String getName() {
return this.name;
}
//Obturateur qui vous permet de lire la valeur d'une variable à partir d'une classe enfant
public int getScore() {
return this.score;
}
}
public class Ko extends Oya {
//Constructeur de classe enfant
public Ko() {
// super(name); //← Non
// super(score); //← Non
super(name, score); //Ecrire de la même manière que lors du passage d'arguments à une méthode
}
public void sayHello() {
//Puisque le nom est privé dans la classe Oya, ce.Non accessible par nom, etc.
//Si vous écrivez un getter dans la classe Oya, il retournera la valeur de name en utilisant la méthode.
System.out.println("hello! " + this.getName()); //← Appelez la méthode getName de la classe Oya à la fin pour recevoir la valeur de name
}
}
public static void main(String[] args) {
Ko bob = new Ko("bob", 10);
Ko.sayHello();
}
Cela a fonctionné.
Si vous écrivez super (nom, score)
, l'erreur de compilation disparaît et le constructeur semble fonctionner correctement.
Je ne pouvais tout simplement pas penser à cette façon d'écrire, et l'exemple de l'utilisation de super est sorti avec un seul argument, donc je vais le laisser comme un mémo.
J'ai mal compris que je passerais les variables une par une au constructeur de la classe Oya en écrivant super (argument).
Ceci est un article amateur, veuillez donc signaler toute erreur.
Recommended Posts