Le polymorphisme fait référence au fait de permettre à des objets de types différents de répondre au même message. Il présente les avantages de la flexibilité, de l'abstraction, du partage de comportement et du partage de code, ce qui signifie une utilisation et une simplicité maximales, ainsi qu'une vitesse de chargement.
1. Le rôle du polymorphisme
Éliminer la relation de couplage entre les types. Autrement dit, le même événement se produisant sur différents objets produira des résultats différents.
2. Formes d'implémentation du polymorphisme
1. Surcharge (survenant dans la même classe)
2.
3. Avantages du polymorphisme
1. Remplacement
2. Extensibilité
3 .Interface (Le polymorphisme fournit une interface commune. aux sous-classes via les signatures de méthodes)
4. Simplicité
5. Flexibilité
Remarque : Ces avantages peuvent sembler fictifs, mais vous ne pouvez les réaliser que lorsque vous les appliquez réellement.
4. Trois conditions préalables à l'existence du polymorphisme
1 Il doit y avoir une relation d'héritage
2. classe parent
3. La référence de la classe parent pointe vers l'objet sous-classe
Exemple de code : définir une classe parent Animal et une sous-classe Chien
1 //父类——Animal 2 public class Animal { 3 int num = 44; 4 static int age = 2; 5 6 public void eat() { 7 System.out.println("动物都需要吃东西"); 8 } 9 10 public static void sleep() {11 System.out.println("动物需要睡觉");12 }13 14 public void run() {15 System.out.println("长腿的动物爱奔跑");16 }17 }
1 //子类——Dog 2 public class Dog extends Animal { 3 int num = 5; 4 static int age = 5; 5 String name = "Tom"; 6 7 public void eat() { 8 System.out.println("我爱吃狗粮"); 9 }10 11 public static void sleep() {12 System.out.println("我是一只不爱睡觉的活泼狗狗");13 }14 15 public void catchMouse() {16 System.out.println("我喜欢多管闲事");17 }18 19 }
1 //测试类 2 public class Demo_Test { 3 public static void main(String[] args) { 4 Animal a = new Dog(); 5 a.eat(); 6 a.sleep(); 7 a.run(); 8 9 System.out.println(a.num);10 System.out.println(a.age);11 }12 }
Démonstration de notes :
Du résultat de l'impression ci-dessus (7), nous pouvons conclure :
1) Variables membres : imprime la classe parent, la sous-classe ne sort pas
2) Méthode membre : la classe parent est Si elle est statique, elle imprimera la classe parent, si elle est non statique, elle imprimera directement la sous-classe
3) Il y a des erreurs en 5 et 6 à gauche car le La méthode que nous avons utilisée lors de l’appel de membres statiques est erronée. (La capture d'écran correcte sera affichée ci-dessous)
4) Lors de l'appel d'une méthode qui n'est pas dans la classe parent (a.catchMouse();), une erreur sera signalé. )
À l'heure actuelle, le polymorphisme ne peut pas utiliser ses propres attributs et méthodes uniques. C'est l'inconvénient du polymorphisme.
Réponse : pointez cette référence de classe parent vers l'objet de sous-classe a, puis forcez-la à revenir au type Dog. De cette façon, a est une référence de type Dog, et pointe également vers l’objet Dog.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!