- - Tutoriel: Substitution de méthode dans JAVA - Meilleures pratiques de programmation

Tutoriel: Substitution de méthode dans JAVA - Meilleures pratiques de programmation

Pendant l'héritage, lorsqu'une définition de méthode ala même signature de méthode (nom de méthode + signature de paramètre) et le type de retour dans une sous-classe que celui de sa super-classe, alors la méthode dans la sous-classe est censée remplacer la méthode de sa super-classe et le mécanisme est appelé méthode de substitution.

Ayant été créé objet de la sous-classe, lorsquela méthode redéfinie est appelée, puis l'objet de la sous-classe se réfère à la méthode définie dans la sous-classe, ce qui signifie que la méthode redéfinie définie dans la super classe sera masquée. Pour accéder à la méthode redéfinie définie dans la super classe, la sous-classe peut y accéder à l'aide du mot clé "super".

Dans les POO, la substitution de méthode est une fonctionnalité qui permetsous-classe définit l'implémentation spécifique d'une méthode qui est déjà définie dans l'une de ses super classes ». Parmi les méthodes remplacées, la version de la méthode qui sera appelée sera déterminée par l'objet appelant au moment de l'exécution. C'est comme ça qu'on l'appelle Polymorphisme d'exécution car les méthodes Overridden implémentent l'aspect «une interface, plusieurs utilisations» du polymorphisme.

Dans la substitution de méthode, le système d'exécution Java résout l'invocation de méthode de manière dynamique au moment de l'exécution, appelée Reliure tardive.

Caractéristiques de la méthode prioritaire

  • Le niveau d'accès de la méthode prioritaire dans la sous-classe ne peut pas être plus restrictif que la méthode substituée de la super classe.
  • On dira que les méthodes se remplacent les unes les autres lorsqu'il existe une relation parent-enfant entre les classes.
  • Les méthodes privées et finales ne peuvent pas être remplacées.
  • Les méthodes statiques ne peuvent pas être remplacées mais peuvent être déclarées à nouveau.
  • Les méthodes non finales publiques ou protégées d'un package ne peuvent être remplacées que par sa sous-classe existant dans un autre package différent.
  • Les constructeurs ne peuvent pas être remplacés.
  • Overridden peut lever toute exception non vérifiée.

Les avantages

Prend en charge la spécialisation, c'est-à-dire lors de l'héritage lorsqu'une sous-classe hérite d'une classe parent, alors la sous-classe aura toutes les fonctionnalités de la classe parent et au-dessus de cette sous-classe peut implémenter des fonctionnalités spécifiques à la méthode prioritaire ayant la même signature de méthode et le même type de retour que dans sa super classe.

Programme Java

class Animal{
void sound(){
System.out.println("default sound...");
}
}
class Cat extends Animal{
void sound(){
System.out.println("mew mew...");
}
}
class Dog extends Animal{
void sound(){
System.out.println("vow vow...");
}
}
class MethodOverrideDemo{
public static void main(String args[]){
Cat cat = new Cat();
Dog dog = new Dog();
System.out.println("--------Cat--------");
cat.sound();
System.out.println("--------Dog--------");
dog.sound();
}
}

Production

method_override

Explication du code et de la sortie

Dans l'exemple ci-dessus, Chien et Chat sont tous deuxsous-classes dérivées de la superclasse animale. Dans toutes les classes (sauf la classe MethodOverrideDemo), vous trouverez la méthode sound (), qui est définie sous la classe Animal de manière générique et dans la classe Cat and Dog a remplacé la méthode sound () de la classe Animal avec une implémentation spécifique selon le scénario . De toute évidence, le son de Cat est «mew mew…» et celui du chien «vow vow…» () est défini dans ces classes en fonction des besoins. Si nous créons un objet de classe Cat, alors il invoquera la méthode sound () de la classe Cat, il en va de même pour l'objet de la classe Dog. Je suppose qu'à la sortie, tout est clair.

Découvrez des tutoriels plus utiles et des directives définitives sur la programmation Java ici.

commentaires