Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Downcasting di oggetti

Hybrid View

  1. #1
    Grazie della pronta risposta.

    A questo punto però mi chiedo: se so che potrei avere bisogno di usare dei metodi della classe Gatto, perché lo creo come animale generico per poi dover fare necessariamente il casting? Un certo buonsenso mi porta a dichiarare Gatto come istanza della classe Gatto sapendo che già eredita tutti i metodi concreti e astratti da implementare della classe Animale.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    se so che potrei avere bisogno di usare dei metodi della classe Gatto, perché lo creo come animale generico per poi dover fare necessariamente il casting?
    Avere un super-tipo più generico, prendiamo l'esempio di Animale e poi Gatto/Cane/ecc..., è utile per sfruttare il polimorfismo. Pensa ad esempio ad un metodo che riceve (o restituisce) un Animale[] o List<Animale>. Possono contenere qualunque cosa che deriva da Animale e magari il metodo ha bisogno solo di "vedere" gli oggetti come Animale e non come uno dei tipi più specifici.

    Il punto in questi casi è: dato uno scenario in cui hai uno o più oggetti "visti" solo come il super-tipo (Animale), PERCHE' hai bisogno di fare operazioni che sono specifiche delle sotto-classi? Se è un caso particolare, ci sono motivi validi o cose del genere, allora può aver senso. Se invece ti trovi ad aver molto o continuamente bisogno di operazioni specifiche dei sotto-tipi, allora o la tua gerarchia è "disegnata" male oppure stai cercando di fare delle cose che sarebbe meglio risolvere in modo differente.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.