[Java] Surcharge et remplacement

Résumer les surcharges et les remplacements

Surcharge

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
}

passer outre

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

[Java] Surcharge et remplacement
[Java] Surcharge / Remplacer / Héritage
java (remplacement)
[Java] Surcharge
XXE et Java
Getter et Setter (Java)
[Java] Thread et exécutable
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
timedatectl et Java TimeZone
[Java] Branchement et répétition
[Java] Types de variables et types
java (classe et instance)
Etudier Java # 2 (\ marque et opérateur)
[Java] Différence entre == et égal
[Java] Zone de pile et zone statique
Java à partir du débutant, remplacer
[Java] Classe générique et méthode générique
Cryptage et décryptage Java PDF
Java et Iterator Part 1 External Iterator Edition
Instructions Java if et switch
Apache Hadoop et Java 9 (partie 1)
[Java] À propos de String et StringBuilder
[Java] HashCode et remplacement égal
☾ Instruction Java / Repeat et instruction de contrôle de répétition
Méthodes Java et surcharges de méthodes
java Generics T et? Différence
Avantages et inconvénients de Java
java (branchement conditionnel et répétition)
À propos du package Java et de l'importation
[Java] Téléchargez une image et convertissez-la en Base64
Histoire de remplacement C # et Java
Méthodes et classes abstraites Java
Encapsulation Java et getters et setters
Kotlin post- et pré-incrémentation et surcharge des opérateurs (comparaison avec C, Java, C ++)
ClassCastException se produit lors de la migration de Java7 vers Java8 ~ Génériques et surcharge ~
À propos des méthodes Java statiques et non statiques
J'ai comparé les constructeurs PHP et Java
Différences entre Java "débutant" et Kotlin
Traçage distribué avec OpenCensus et Java
[Java] Différence entre Hashmap et HashTable
Déclaration, initialisation et types de variables Java
Insertion Java Excel et extraction d'images
Installez Java et Tomcat avec Ansible
SDK AWS pour Java 1.11.x et 2.x
[Java] Types de base et notes d'instructions
Date de sortie de Java et résumé EOL
Java et fonctions principales - au-delà de l'interface fonctionnelle -
À propos de Biocontainers fastqc et Java
Java pour les débutants, les expressions et les opérateurs 1
Série Java Primer (variations et types)
Exemple d'encodage et de décodage en Java
[Java débutant] À propos de l'abstraction et de l'interface
Types de données de base et types de référence (Java)
[Java] Traitement en boucle et table de quatre-vingt-dix-neuf
Arguments Java, valeurs de retour et surcharges
Aide sur les commandes OpenJDK 8 java et javac
Mécanisme de référence Java (pile et tas)