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

Java - Remplacement

Dans le chapitre précédent, nous avons parlé des superclasses et des sous-classes. Si une classe hérite d'une méthode de sa super-classe, il est alors possible de remplacer la méthode à condition qu'elle ne soit pas marquée comme finale.

L'avantage de la redéfinition est :la possibilité de définir un comportement spécifique au type de sous-classe, ce qui signifie qu'une sous-classe peut implémenter une méthode de classe parente en fonction de ses besoins.

En termes orientés objet, le remplacement signifie remplacer la fonctionnalité d'une méthode existante.

Exemple

Prenons un exemple.

Démo en direct
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
   }
}

Cela produira le résultat suivant −

Sortie

Animals can move
Dogs can walk and run

Dans l'exemple ci-dessus, vous pouvez voir que même si b est un type d'Animal, il exécute la méthode move dans la classe Dog. La raison en est la suivante :au moment de la compilation, la vérification est effectuée sur le type de référence. Cependant, lors de l'exécution, JVM détermine le type d'objet et exécute la méthode qui appartient à cet objet particulier.

Par conséquent, dans l'exemple ci-dessus, le programme se compilera correctement puisque la classe Animal a la méthode move. Ensuite, lors de l'exécution, il exécute la méthode spécifique à cet objet.

Prenons l'exemple suivant −

Exemple

Démo en direct
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
   public void bark() {
      System.out.println("Dogs can bark");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
      b.bark();
   }
}

Cela produira le résultat suivant −

Sortie

TestDog.java:26: error: cannot find symbol
      b.bark();
       ^
  symbol:   method bark()
  location: variable b of type Animal
1 error

Ce programme lancera une erreur de compilation puisque le type de référence de b Animal n'a pas de méthode du nom de bark.

Règles de remplacement de méthode

Utiliser le super mot-clé

Lors de l'appel d'une version de superclasse d'une méthode surchargée, le super mot-clé est utilisé.

Exemple

Démo en direct
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      super.move();   // invokes the super class method
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal b = new Dog();   // Animal reference but Dog object
      b.move();   // runs the method in Dog class
   }
}

Cela produira le résultat suivant −

Sortie

Animals can move
Dogs can walk and run

Java

  1. Opérateurs Java
  2. InterfaceJava
  3. Méthode String Length () en Java:comment trouver avec l'exemple
  4. Méthode Java String indexOf() avec sous-chaîne et exemples
  5. Méthode Java String charAt() avec exemple
  6. Méthode Java String compareTo () :comment utiliser des exemples
  7. Méthode Java String contains() | Vérifier la sous-chaîne avec l'exemple
  8. Méthode Java String endsWith () avec exemple
  9. Méthode Java String replace(), replaceAll() et replaceFirst()