Quote Originariamente inviata da andbin Visualizza il messaggio
- Togli il campo codiceColore da Camicia (non ha senso, se non mi dai una spiegazione plausibile)
- Togli il getColore() da Camicia (non potresti più usare il campo, che è private nella superclasse .... e comunque non farebbe nulla di più del getColore() di Abbigliamento)
- Nel setColore di Camicia usa super.setColore( .... ); per invocare il setColore della superclasse che È in grado di accedere al suo campo)
Così la 'R' finalmente viene stampata , ma mi sono giocato il controllo switch, e mi stampa qualunque char. Non posso mettere lo switch nel setColore() della superclasse perché i colori sono potenzialmente differenti in base al tipo di abbigliamento.

Quote Originariamente inviata da andbin Visualizza il messaggio
P.S.1) un setter che stampa un messaggio di errore non è granché buono ... sarebbe meglio una eccezione.

P.S.2) c'è comunque la questione concettuale che la tua Camicia fornisce una "restrizione" per il setColore. Questo vuol dire che oggetti Camicia NON sono perfettamente sostituibili ovunque sia richiesto un Abbigliamento.
1) ok il println() non è infatti necessario, ma tanto lo switch è rimasto /* commentato */ .
2) non so se ho capito bene... Non amo creare oggetti Camicia riferiti ad Abbigliamento e poi fare casting per usare un metodo di Camicia.