potenik ha scritto:
Mi era totalmente sfuggito instanceof! Grazie mille!
Prego. C'è però un'altra questione più concettuale. Testare il tipo e poi fare un cast non è il massimo, detto in generale, (specialmente se i casi fossero svariati). Ci sono scenari in cui non se ne può fare a meno ma dipende.
Se non hai vincoli (che ovviamente non posso sapere), si potrebbe pensare questo:
- getEtaConsigliata in realtà può essere visto in generale, ovvero non per un tipo specifico ma per "tutti" i libri (pensa ai "libri per adulti").
- per sapere se un libro è per bambini, anche qui si può vedere la cosa più in generale, nel senso che si può mettere in Libro una tipologia del libro (ad esempio con una enum) oppure potrebbe bastare un
boolean isPerBambini() per cui solo la classe LibroPerBambini lo ridefinisce per dare true.
Insomma, il succo è che ragionando un po' più in generale si PUO' evitare il test/cast del tipo.