Polymorphisme les différents cas de "Parent PC = new Child();"
Bonjour,
Je suis nouveau en développement orienté objet, et en Java. En ce moment je suis au polymorphisme.
Et j'ai écrit quelques lignes pour faire des tests, mais cela m'a encore plus embrouillé car je ne trouve pas les mêmes résultats.
En effet :
PC.mP_1(); // "mP_1_Child" => C'est l'enfant qui est pris en comptes
Obj_1.m1(PC); // "Parent" => C'est le père qui est pris en comptes
C'est quoi la logique ? Pour quoi une fois c'est le père qui est pris en compte et une autre fois l'enfant ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Parent {
void mP_1(){
System.out.println("mP_1_Parent");
}
}
class Child extends Parent {
void mP_1(){
System.out.println("mP_1_Child");
}
}
public class Test_Pere_Fils_Refernce{
public void m1(Parent A){
System.out.println("Parent");
}
public void m1(Child m){
System.out.println("Child");
}
public static void main(String[] args){
// Reference Pere/Objet Enfant
Parent PC = new Child();
Test_Pere_Fils_Refernce Obj_1 = new Test_Pere_Fils_Refernce();
// ??? Je ne comprends pas la différence dans la logique !!
// ??? Une fois c'est le père qui est pris en compte et parfois c'est l'enfant
// ??? C'est quoi la règle ici ?
PC.mP_1(); // "mP_1_Child" => C'est l'enfant qui est pris en comptes
Obj_1.m1(PC); // "Parent" => C'est le père qui est pris en comptes
}
} |