Bonjour à tous,
Ayant lu quelques cours de Java, je reste bloqué sur le cast.
J'ai des exemples sous les yeux que je ne comprends pas.
Le code fonctionne et m'affiche C.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class A { void g() {System.out.println("A");} public class B extends A { void g() {System.out.println("B");} public class C extends B{ void g() {System.out.println("C");} /** * @param args */ public static void main(String[] args) { A a=new C(); ((C)a).g(); } }
Maintenant, lorsque j'essai de caster l objet a en A, B, C ou même sans cast... ça fonctionne toujours...
A quoi sert mon cast ? En quoi ça joue à la compilation ou à l'éxecution ?
2eme Q:
Si j'ai : B(ou C) a=new C(); ((C)a).g();
Qu'est ce que ça change, sachant que ça donne le même résultat ?
Je suis embrouillé car C hérite quand meme de A et de B donc pourquoi le cast ?
Merci d'avance.
Partager