Aperçu du polymorphisme
1. Le polymorphisme est la troisième méthode majeure orientée objet après l'encapsulation et l'héritage. .
2. Comprendre le sens de la réalité polymorphe :
Les choses réelles prennent souvent plusieurs formes, comme les étudiants, et les étudiants sont un type d'être humain. Un camarade de classe spécifique, Zhang San, est à la fois un étudiant et un être humain, c'est-à-dire qu'il apparaît sous deux formes.
En tant que langage orienté objet, Java peut également décrire plusieurs formes d'une chose. Si la classe Student hérite de la classe Person, un objet Student est à la fois un Student et une Person.
3. Le polymorphisme se reflète dans le fait que les variables de référence de classe parent peuvent pointer vers des objets de sous-classe.
4. Prérequis : Il doit y avoir une relation enfant-parent.
Remarque : lors de l'appel d'une méthode utilisant une variable de référence de classe parent polymorphe, la méthode remplacée de la sous-classe sera appelée.
5. Définition et format d'utilisation du polymorphisme
Format de définition : nom de la variable de type de classe parent = nouveau type de sous-classe (🎜>
Caractéristiques des membres en polymorphisme
1. Variables de membres polymorphes : regardez à gauche lors de la compilation et de l'exécutionFu f=new Zi();System.out.println(f.num);//f est la valeur dans Fu, et ne peut obtenir la valeur que dans le parent2 Méthodes membres polymorphes : regardez à gauche lors de la compilation, et. regardez à droite lors de l'exécutioninstanceof password
Fonction : Utilisé pour déterminer si un objet appartient à un certain type de données. Remarque : Le type de retour est booléenCas d'utilisation :Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的类型"); } else{ System.out.println("f1是Son的类型"); }
Transformation polymorphe
Transformation polymorphe Il existe deux types de transformation vers le haut et transformation vers le bas Transformation vers le haut : le polymorphisme lui-même est un processus de transformation vers le haut Utilisation du format : nom de la variable de type de classe parent = nouveau type de sous-classe (Applicable); Scénarios : lorsqu'il n'est pas nécessaire de faire face à des types de sous-classes, les opérations correspondantes peuvent être réalisées en améliorant l'évolutivité ou en utilisant les fonctions de la classe parent. Conversion vers le bas : un objet de sous-classe qui a été converti vers le haut peut utiliser le format de conversion de type forcé pour convertir le type de référence de classe parent en type de référence de sous-classe Utilisation du format : type de sous-classe Nom de la variable = (type de sous-classe) Variable du type de classe parent ; Scénario applicable : Lorsque vous souhaitez utiliser les fonctions uniques de la sous-classe.Cas polymorphe :
Exemple 1 :package day0524; public class demo04 { public static void main(String[] args) { People p=new Stu(); p.eat(); //调用特有的方法 Stu s=(Stu)p; s.study(); //((Stu) p).study(); } } class People{ public void eat(){ System.out.println("吃饭"); } } class Stu extends People{ @Override public void eat(){ System.out.println("吃水煮肉片"); } public void study(){ System.out.println("好好学习"); } } class Teachers extends People{ @Override public void eat(){ System.out.println("吃樱桃"); } public void teach(){ System.out.println("认真授课"); } }
package day0524; public class demo1 { public static void main(String[] args) { A a=new A(); a.show(); B b=new B(); b.show(); } } class A{ public void show(){ show2(); } public void show2(){ System.out.println("A"); } } class B extends A{ public void show2(){ System.out.println("B"); } } class C extends B{ public void show(){ super.show(); } public void show2(){ System.out.println("C"); } }
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!