Secondo un esempio fatto in aula il seguente codice dovrebbe passare al compilatore ma darmi l'eccezzione "ArrayStoreException" in run-time, ma non riesco a capire il perchè.

codice:
Fruit[] fruit = new apple [10];
fruit[0] = new Apple();
fruit[1] = new Jonathan();

fruit[0] = new Fruit();
fruit[0] = new orange();
Ovvero, secondo la lezione le prime due righe non danno problmei, benchè la seconda è di un tipo diverso da apple che non ha nulla a che vedere (quindi già qui la dimensione dovrebbe essere diversa), il problema secondo le slide sovrebbe essere nelle ultime righe.

Sapete indicamri da cosa dipende?

Vi ringrazio in anticipo,
Neptune.