Ciao ..
cosa capite voi da questo esempio .. ?
relativamente ad una classe 'padre' (Pesce), e ad una classe 'figlia' (PesceRosso) .. si dice:

un PesceRosso è sempre un Pesce
ma un pesce (in generale) NON è un PesceRosso


codice:
Pesce p = new PesceRosso() ;  
PesceRosso s =(PesceRosso) p;