Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    dubbio su ereditarietà

    ciao, sto provando a usare java dopo un bel po e mi sono imbattuto in un dubbio terribile:

    - ho una classe veicolo che usa un oggetto motore (di cui un metodo é "accendi")
    - poi ho una classe moto che usa un oggetto motoreMoto (che estende motore e implemente il metodo giraRuote(direzione)
    - infine ho una classe barca che usa un oggetto motoreBarca (che estende motore e implementa il metodo giraPale(direzione))
    - evidentemente moto e barca estendono veicolo

    ecco un pezzo di codice delle classi in questione
    Codice PHP:
    //veicolo
    protected motore;
    public 
    Veicolo(motore m){
      
    this.motore m;
    }

    //Barca
    public Barca(motoreBarca mb){
      
    super.motore mb;
    }

    public 
    Muovi(direzione){
      
    this.motore.giraPale(direzione);

    // sopra mi sembra che ci sia un errore perché cerco di assegnare un motoreBarca dove andrebbe un motore... come devo organizzare il mio codice per fare questo?
    Codice PHP:
    MotoreBarca mb = new MotoreBarca(cilindri);
    Barca b = new Barca(mb);
    b.accendi(); // motoreBarca non lo implemente, ma dovrebbe ereditarlo da motore
    b.muovi(avanti); //implementato in barca, usa il metodo giraPale di motoreBarca 
    help!
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: dubbio su ereditarietà

    Originariamente inviato da Gumble
    ecco un pezzo di codice delle classi in questione
    Mettere il codice completo, con dichiarazioni delle classi ecc... noo? era troppo?

    Originariamente inviato da Gumble
    // sopra mi sembra che ci sia un errore perché cerco di assegnare un motoreBarca dove andrebbe un motore...
    Se MotoreBarca estende Motore, io non vedo alcun problema, almeno a livello concettuale.

    E comunque il motore messo come protected può essere discutibile. Le sottoclassi di Veicolo dovrebbero passare il MotoreXXX al super-costruttore ... non assegnarlo direttamente al campo.
    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 L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    Re: Re: dubbio su ereditarietà

    Originariamente inviato da andbin
    Mettere il codice completo, con dichiarazioni delle classi ecc... noo? era troppo?
    Motivo: ho inventato l'esempio al volo... pensavo fosse sufficiente

    Se MotoreBarca estende Motore, io non vedo alcun problema, almeno a livello concettuale.
    grazie... in effetti ho applicato la stessa logica al mio codice (esempio piu complicato che barca e veicoli perché include dao generici e altre robe...) e funziona

    E comunque il motore messo come protected può essere discutibile. Le sottoclassi di Veicolo dovrebbero passare il MotoreXXX al super-costruttore ... non assegnarlo direttamente al campo.
    infatti ho cambiato anche questo.. intendi cosi?
    Codice PHP:
    public Barca(motoreBarca mb){
      
    super(mb);

    thanks
    alcool: la causa e la soluzione di tutti i problemi

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: dubbio su ereditarietà

    Originariamente inviato da Gumble
    infatti ho cambiato anche questo.. intendi cosi?
    Codice PHP:
    public Barca(motoreBarca mb){
      
    super(mb);

    Sì, esatto.
    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.