Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    Java Problema Ereditarietà Multipla

    Salve ho una classe che estende timertask , ma questa classe dovrebbe anche estendere Observable come posso fare?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Salve ho una classe che estende timertask , ma questa classe dovrebbe anche estendere Observable come posso fare?
    Non puoi così, Java ha solo l'ereditarietà singola di classe. Se vuoi persistere su questa strada, però nota che nessuno vieta di avere una inner-class nel tuo task che estende Observable e poi nel tuo task rendere disponibile un getObservable() che permette di tirare fuori l'Observable.
    Ultima modifica di andbin; 16-06-2014 a 15:10
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non puoi così, Java ha solo l'ereditarietà singola di classe. Se vuoi persistere su questa strada, però nota che nessuno vieta di avere una inner-class nel tuo task che estende Observable e poi nel tuo task rendere disponibile un getObservable() che permette di tirare fuori l'Observable.
    ho creato una inner class e un campo del tipo della inner class, solo che ho dovuto sovrascrivere il metodo setchanged perché non riuscivo ad accedervi come mai ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    ho creato una inner class e un campo del tipo della inner class, solo che ho dovuto sovrascrivere il metodo setchanged perché non riuscivo ad accedervi come mai ?
    Perché clearChanged/setChanged sono protected in Observable. protected vuol dire che il membro è "visibile" solo a: 1) qualunque classe/sotto-classe nello stesso package (di java.util sarebbe, quindi) e 2) sotto-classi in altri package, cioè solo per ereditarietà.

    Pertanto setChanged è usabile direttamente nella tua inner-class che estende Observable ma non è visibile alla classe "contenitore" della tua inner-class.

    Nota che non c'è bisogno di ridefinire setChanged! Basta che nella tua inner-class metti un metodo (anche privato, tanto questo è accessibile dalla classe contenitore) es. cambia() che invoca setChanged().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava 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 © 2025 vBulletin Solutions, Inc. All rights reserved.