[débutant] Le transtypage
Bonjour, j'ai un mal fou pour comprendre les dessous de Java et cet exemple me laisse dubitatif.
Pourquoi le programme affiche-t-'il "B" alors que l'on a transtypé l'objet de type B en A, et devrait donc appelé la méthode m() de la classe A ?
Meric d'avance :)
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
|
//A.java
package monPackage;
public class A
{
public void m()
{
System.out.println("A");
}
}
//B.java
package monPackage;
public class B extends A
{
public void m()
{
System.out.println("B");
}
}
//Main.java
package monPackage;
public class Main
{
public static void main(String args[])
{
A b = new B();
((A)b).m();
}
} |