Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Remplacement de la méthode Java

Remplacement de la méthode Java

Dans ce didacticiel, nous allons apprendre à remplacer les méthodes en Java à l'aide d'exemples.

Dans le dernier tutoriel, nous avons appris l'héritage. L'héritage est une propriété OOP qui nous permet de dériver une nouvelle classe (sous-classe) à partir d'une classe existante (superclasse). La sous-classe hérite des attributs et des méthodes de la super-classe.

Maintenant, si la même méthode est définie à la fois dans la superclasse et la sous-classe, alors la méthode de la classe de la sous-classe remplace la méthode de la superclasse. C'est ce qu'on appelle le remplacement de méthode.

Exemple 1 :remplacement de méthode

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   @Override
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Sortie :

I am a dog.

Dans le programme ci-dessus, le displayInfo() est présente à la fois dans Animal superclasse et le Chien sous-classe.

Lorsque nous appelons displayInfo() en utilisant le d1 object (objet de la sous-classe), la méthode à l'intérieur de la sous-classe Dog est appelé. Le displayInfo() méthode de la sous-classe remplace la même méthode de la superclasse.

Remarquez l'utilisation du @Override annotation dans notre exemple. En Java, les annotations sont les métadonnées que nous utilisons pour fournir des informations au compilateur. Ici, le @Override annotation spécifie au compilateur que la méthode après cette annotation remplace la méthode de la superclasse.

Il n'est pas obligatoire d'utiliser @Override . Cependant, lorsque nous l'utilisons, la méthode doit suivre toutes les règles de remplacement. Sinon, le compilateur générera une erreur.

Règles prioritaires Java

  • La superclasse et la sous-classe doivent avoir le même nom de méthode, le même type de retour et la même liste de paramètres.
  • Nous ne pouvons pas remplacer la méthode déclarée comme final et static .
  • Nous devons toujours remplacer les méthodes abstraites de la superclasse (cela sera abordé dans des tutoriels ultérieurs).

super mot-clé dans le remplacement de Java

Une question courante qui se pose lors de l'exécution d'un remplacement en Java est :

Pouvons-nous accéder à la méthode de la superclasse après le remplacement ?

Eh bien, la réponse est Oui . Pour accéder à la méthode de la superclasse depuis la sous-classe, on utilise le super mot-clé.

Exemple 2 :Utilisation du super mot-clé

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      super.displayInfo();
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Sortie :

I am an animal.
I am a dog.

Dans l'exemple ci-dessus, la sous-classe Dog remplace la méthode displayInfo() de la superclasse Animal .

Lorsque nous appelons la méthode displayInfo() en utilisant le d1 objet du Chien sous-classe, la méthode à l'intérieur du Dog la sous-classe est appelée ; la méthode à l'intérieur de la superclasse n'est pas appelée.

À l'intérieur du displayInfo() du Chien sous-classe, nous avons utilisé super.displayInfo() appeler le displayInfo() de la superclasse.

Il est important de noter que les constructeurs en Java ne sont pas hérités. Par conséquent, il n'existe pas de remplacement de constructeur en Java.

Cependant, nous pouvons appeler le constructeur de la superclasse à partir de ses sous-classes. Pour cela, nous utilisons super() . Pour en savoir plus, visitez le super mot-clé Java.

Spécificateurs d'accès dans le remplacement de méthode

La même méthode déclarée dans la superclasse et ses sous-classes peuvent avoir des spécificateurs d'accès différents. Cependant, il y a une restriction.

Nous ne pouvons utiliser ces spécificateurs d'accès que dans des sous-classes qui fournissent un accès plus large que le spécificateur d'accès de la superclasse. Par exemple,

Supposons qu'une méthode myClass() dans la superclasse est déclaré protected . Ensuite, la même méthode myClass() dans la sous-classe peut être soit public ou protected , mais pas private .

Exemple 3 :Accéder au spécificateur lors du remplacement

class Animal {
   protected void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Sortie :

I am a dog.

Dans l'exemple ci-dessus, la sous-classe Dog remplace la méthode displayInfo() de la superclasse Animal .

Chaque fois que nous appelons le displayInfo() en utilisant le d1 (objet de la sous-classe), la méthode à l'intérieur de la sous-classe est appelée.

Notez que le displayInfo() est déclaré protected dans l'Animal superclasse. La même méthode a le public spécificateur d'accès dans le Chien sous-classe. Ceci est possible car le public offre un accès plus large que le protected .

Remplacer les méthodes abstraites

En Java, les classes abstraites sont créées pour être la superclasse d'autres classes. Et, si une classe contient une méthode abstraite, il est obligatoire de la surcharger.

Nous en apprendrons plus sur les classes abstraites et le remplacement des méthodes abstraites dans des didacticiels ultérieurs.


Java

  1. Opérateurs Java
  2. Java essayer avec des ressources
  3. Annotations Java
  4. Types d'annotations Java
  5. Méthode String Length () en Java:comment trouver avec l'exemple
  6. Méthode Java String indexOf() avec sous-chaîne et exemples
  7. Méthode Java String charAt() avec exemple
  8. Méthode Java String compareTo () :comment utiliser des exemples
  9. Méthode Java String contains() | Vérifier la sous-chaîne avec l'exemple