Résumer les surcharges et les remplacements
Définissez plusieurs ** méthodes ** différentes avec le même nom mais ** signature **. → Même si le nom est le même ** Différent d'une méthode **
** * Qu'est-ce que la signature ** -Nom de la méthode -Type de liste d'arguments -Nombre d'arguments ・ Ordre des arguments
** [Éléments à ne pas prendre en compte lors de la surcharge] ** ・ Différence de valeur de retour -Nom de la variable d'argument ・ Différence de modificateur d'accès
Exemple)
int price(int a, double b){
return a * b;
}
[Motif de surcharge]
double price(int a){ //Puisqu'il est traité comme une méthode distincte, il n'y a aucun problème même si la valeur de retour est modifiée. Surchargé car les signatures sont différentes
//En traitement
}
int price(double a, int b){ //Ordre des arguments inversé → surcharge
//En traitement
}
[** Il est également possible de surcharger une méthode ** avec final **]
final void price(){
//En traitement
}
void prince(int a){ //La méthode finale peut également être surchargée! Parce qu'il est traité comme une autre méthode.
//En traitement
}
[Motif qui ne provoque pas de surcharge]
int price(int product, double tax){ //Le nom de l'argument n'est pas une signature. Ne surcharge pas
//En traitement
}
Lorsque vous ** héritez ** d'une classe parente ** et déclarez une ** classe enfant **, vous devez ** remplacer les membres de la classe parente par la classe enfant **.
** [Conditions de remplacement] ** ・ La signature est la même
Exemple)
class Infant{
protected void talk(){
System.out.println("Ogyaa");
}
}
[Modèles qui peuvent être remplacés]
class Adult extends Infant {
public void talk(){ //Modificateurs d'accès lâche que la méthode talk de la classe parent
System.out.println("Bonjour");
}
}
[Modèles qui ne peuvent pas être remplacés]
class Adult extends Infant {
void talk(){ //Modificateurs d'accès plus stricts que la méthode de conversation de la classe parent
System.out.println("Bonjour");
}
}
class Adult extends Infant {
void talk(String a){ //Signature différente de la méthode de conversation de la classe parent (devient surchargée)
System.out.println("Bonjour" + a);
}
}
Recommended Posts