Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it L'avatar di matrics
    Registrato dal
    Jul 2004
    Messaggi
    502

    [JAVA]Problema con ereditarietà

    Ho una classe A che implementa alcuni metodi ed una sottoclasse B che estende A.
    In particolare ho un metodo di A che non deve essere ereditato da B.
    Ma non posso dichiarare questo metodo private perchè serve ad un'altra classe che lo invoca.

    Ho pensato a questa soluzione:

    codice:
    public void metodoDiADaNonEstendere()
    {
       try
       {
          if(this instanceof B)
             throw new NotEreditableException(...);
          // implementazione del metodo
       }
       catch (NotEreditableException e)
       {
          System.out.println("Metodo non ereditabile!");
       }
    }


    ma mi convince poco

    Esiste qualcosa di meglio?

  2. #2
    non capisco che cosa ti cambia se lo eredita o no, scusa basta semplicemente non usarlo, comunque se proprio proprio vuoi potresti riscriverlo in fondo estendendo una classe puoi anche implementare diversamente i suoi metodi...quindi potresti farlo diventare "vuoto"

    codice:
    public void metodoDiADaNonEstendere()
    {
    }
    Così anche se ti capita di chiamarlo non esegue nessuna operazione...

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it L'avatar di matrics
    Registrato dal
    Jul 2004
    Messaggi
    502
    Originariamente inviato da Matteo982
    non capisco che cosa ti cambia se lo eredita o no

    motivi di "sicurezza".Le chiamate dei metodi possono essere fatte solo da certe istanze e non si corrono rischi
    la tua soluzione funziona anche ma io vorrei proprio evitare questo metodo nella sottoclasse

  4. #4
    non penso si possa fare altrimenti...ma quello che non capisco è che fastidio ti da...alla fine ti basta non usare quello nella sottoclasse! :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    Soluzioni possibili oltre alla tua potrebbe essere questa....

    Classe A con
    metodo1
    metodo2

    Classe A1 estende A
    metodoNonEreditabile


    Classe B extend A
    e
    Classe C estende A1 e accede al metodoNonEreditabile
    TonyTalk
    Gioca a The Empire Multiplayer online game...ispirato a Risiko ma con scenari ed opzioni rivoluzionarie
    http://www.multiplayergames.it
    http://utenti.lycos.it/the_empire

  6. #6
    Utente di HTML.it L'avatar di matrics
    Registrato dal
    Jul 2004
    Messaggi
    502
    Originariamente inviato da tonytalk
    Soluzioni possibili oltre alla tua potrebbe essere questa....

    Classe A con
    metodo1
    metodo2

    Classe A1 estende A
    metodoNonEreditabile


    Classe B extend A
    e
    Classe C estende A1 e accede al metodoNonEreditabile


    non fa al caso mio, cmq grazie

  7. #7
    Utente di HTML.it L'avatar di matrics
    Registrato dal
    Jul 2004
    Messaggi
    502
    Originariamente inviato da Matteo982
    non penso si possa fare altrimenti...ma quello che non capisco è che fastidio ti da...alla fine ti basta non usare quello nella sottoclasse! :master:

    Ciao.


    il fatto che questo è un progetto che devo consegnare per un esame e mi devo attenere alle richieste del prof

  8. #8
    E quali sarebbero queste richieste?
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  9. #9
    Utente di HTML.it L'avatar di matrics
    Registrato dal
    Jul 2004
    Messaggi
    502
    Originariamente inviato da Matteo982
    E quali sarebbero queste richieste?


    Visibilità delle variabili privata per quanto possibile.
    Possibilità di protected con valide motivazioni.
    I metodi ereditati devo essere utilizzati dalle sottoclassi.



    Da un altro esame di programmazione:

    Regola dei metodi:

    Se un oggetto istanza di A invoca un metodo lo deve soddisfare anche con la sottoclasse B.


    un metodo ereditato può fare al max più cose, mai meno

  10. #10
    Fammi capire perchè non ti va bene così provo a pensare altre proposte...prima di andare in ferie cioè 30 minuti eheheheh

    Ciao
    TonyTalk
    Gioca a The Empire Multiplayer online game...ispirato a Risiko ma con scenari ed opzioni rivoluzionarie
    http://www.multiplayergames.it
    http://utenti.lycos.it/the_empire

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.