Se il numero di caselle deve restare fisso, sì, va bene. Non è certo un aspetto negativo.
È già così, nel senso che in un array Casella[] puoi inserire qualunque oggetto che deriva da Casella. La questione è un'altra: se tiri fuori un oggetto dall'array lo "vedi" solo con il tipo statico Casella. Se vuoi sapere/avere il tipo esatto, puoi usare instanceof e poi un cast ma il punto è: hai bisogno proprio di questo o puoi fare invocazioni "polimorfiche"? Dipende da cosa fanno quelle caselle .....![]()