Je suis en train de clarifier ce que je comprenne bien clichage. S'il vous plaît corrigez-moi sur tout ce qui est incorrect car j'ai été auto-apprentissage Java pendant environ 2 mois maintenant à un rythme très lent.type coulée/coulée vers le bas en Java
Disons que je créé une classe appelée sous-objet. Et je suis conscient que toutes les classes qui n'ont pas de superclasse explicite directe sont supposées être des sous-classes de la classe Object.
Object obj1 = new SubObject();
SubObject subObj1 = (SubObject) obj1;
System.out.println(subObj1); //prints out com.examplePackage.SubObject1234e1234;
J'ai donc avec succès downcasted la référence de la classe de base (Object) à sa classe dérivée (Subobject). Mais ...
Object obj2 = new Object();
SubObject subObj2 = (SubObject) obj2;//this throws the ClassCastException error.
Ma compréhension de l'erreur ClassCastException est qu'il a hérité RuntimeException de l'attraper pendant la compilation, pour montrer que le code a tenté de jeter un objet à une sous-classe dont il n'est pas une instance. Parce que subObj2 n'est PAS une instance de SubObject, mais plutôt Object, il est incompatible.
J'ai donc 2 questions: 1. Y at-il défaut/erreur dans ma compréhension? 2. Dans quelle situation le downcasting est-il réellement utilisé? Merci à tous pour l'aide.