Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    14

    Chiarimenti di attributi con classi e sottoclassi

    Salve a tutti. Ho una classe padre e una sua sottoclasse.
    Nella classe padre ho diversi attributi privati che assegno come parametri al costruttore e li inizializzo.

    Nel costruttore della sottoclasse richiamo questi attributi nei parametri della sottoclasse e poi eseguo super(attributi);

    Cercando di utilizzare questi attributi del padre mi segnala errore e devo per forza scrivere i getter e setter degli attributi del padre in quest'ultimo.

    Mi chiedevo se fosse veramente cosi e se il problema fosse risolvibile (pro e contro) dichiarando gli attributi protected.


    Grazie a tutti per i chiarimenti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da scartus Visualizza il messaggio
    Cercando di utilizzare questi attributi del padre mi segnala errore e devo per forza scrivere i getter e setter degli attributi del padre in quest'ultimo.
    Se sono private NON sono accessibili né dalla sottoclasse né da qualunque altra classe esterna. Un membro private è accessibile solo all'interno della classe in cui è definito.

    Quote Originariamente inviata da scartus Visualizza il messaggio
    dichiarando gli attributi protected.
    Sì, così ok. Ma qui entrano in gioco questioni più di "design". Un membro protected di fatto fa parte della API "pubblica" (ciò che in generale "espone" verso altre classi) di una classe. Le sottoclassi possono usarlo (e anche altre classi, non-subclass, nello stesso package) ma questo vuol anche dire che quel campo non lo potrai toccare (rinominare, togliere, cambiare tipo) perché altrimenti "rompi" le sottoclassi e in generale chi lo usa.
    Quindi prima di mettere un campo protected, pensa "perché". Perché non bastano i getter/setter nella classe dove è il campo?
    Andrea, andbin.devSenior 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 © 2024 vBulletin Solutions, Inc. All rights reserved.