Maison >Java >Javacommencer >Comment comprendre le polymorphisme Java
En Java, le polymorphisme est la capacité d'un même comportement à avoir plusieurs manifestations ou formes différentes ; le polymorphisme est la même interface, utilisant différentes instances pour effectuer différentes opérations ; Les avantages du polymorphisme : 1. Éliminer les relations de couplage entre les types ; 2. Remplacement ; 4. Interface ; 6. Simplification ;
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Java 8, ordinateur DELL G3.
1. Le Polymorphisme est la troisième caractéristique majeure de l'orientation objet après l'encapsulation et l'héritage.
2. PolymorphismeSignification réalisteCompréhension :
Les choses réalistes prennent souvent plusieurs formes, comme les étudiants, les étudiants. sont un type de personne, alors un camarade de classe spécifique Zhang San est à la fois un étudiant et une personne, c'est-à-dire qu'il existe 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.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 :Compréhension : 父类类型 变量名=new 子类类型();
Parent p = new Child();
Fu f=new Zi(); System.out.println(f.num);//f是Fu中的值,只能取到父中的值
Fu f1=new Zi(); System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。
instanceof mot-clé
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
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ée pour convertir le type de référence de classe parent en type de référence de sous-classe
Cas polymorphe :
)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("认真授课");
}
}
Exemple 2 :
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"); } }Réponse : A BRecommandation de didacticiel vidéo connexe :
Tutoriel vidéo Java
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!