Visto che parti da un reference di tipo A (la variabile t) e fai un cast a B che è in relazione di ereditarietà (e questo soddisfa il compilatore) ma è un sottotipo, questo si chiama "downcast" o anche detto "narrowing". Prevede un controllo fatto a runtime dalla JVM. La JVM semplicemente verifica: l'oggetto realmente istanziato è davvero di tipo B? Nel tuo caso no. L'oggetto davvero istanziato con new è un A. Quindi il cast fallisce a runtime.


					
					
					
						
  Rispondi quotando