Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Super classe ed ereditarietà

    Ciao, sto facendo delle operazioni sull 'ereditarietà. La teoria dice che una classe estende un altra. Arrivo ad avere alcuni dubbi su questa definizione.
    1) Date le mie classi, Camion extends Auto, Camion avrà la caratteristiche di Auto ma non viceversa cioè, Auto vedrà la capacità di Camion da dentro la classe Auto?? presumo di no..????
    2) Prendendo Camion tutte le caratteristiche della classe Auto, come posso nella classe Camion far si che Auto punti il metodo carica e quindi mi restituisca la stampa della capacità?
    Mi spiego... se Camion vede Auto perche in esso è contenuta, perche se utilizzo l'oggetto creato nella classe Auto, nella classe Camion auto risulta inesistente, ripeto, essendo in questa contenuto????

    class Auto {
    int velocità = 90;
    void guida() { System.out.println ("Sto guidando"); }
    public static void main(String args[]) {
    Auto auto = new Auto();
    auto.guida();
    System.out.println(auto.velocità);
    }
    }


    class Camion extends Auto {
    int capacità = 100 "kg";
    void carica () { System.out.println("Sto caricando"); }
    public static void main(String args[]) {
    Camion camion = new Camion();
    camion.carica();
    System.out.println(camion.capacità);
    camion.guida();
    System.out.println(camion.velocità);


    //vorrei fare questo

    auto.carica(); //l'oggetto auto dovrebbe essere riconosciuto
    System.out.println(auto.capacità); //qua nella classe Camion visto che Camion la
    } //estende
    }

  2. #2

    Re: Super classe ed ereditarietà

    Originariamente inviato da Sbraiala
    //vorrei fare questo

    auto.carica(); //l'oggetto auto dovrebbe essere riconosciuto
    System.out.println(auto.capacità); //qua nella classe Camion visto che Camion la
    } //estende
    }
    Se auto è istanza di Auto è ovvio che ciò non puoi farlo.
    Il tuo è un classico esempio di ereditarietà per estensione.
    Le proprietà ed i metodi aggiunti da una sottoclasse non appartengono alla relativa superclasse.
    Concettualmente, non è possibile trattare un supertipo come sottotipo in quanto gli mancano determinate caratteristiche e proprietà comportamentali che sono proprie del sottotipo.

  3. #3
    Grazie per la risposta.. effettivamente la teoria dice proprio cosi... il dubbio era proprio sul fatto che l'ggetto auto potesse essere riconosciuto in Camion visto che Camion prende tutte le caratteristiche di auto...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma se tu fai

    codice:
    camion.guida();
    avrai il messaggio "Sto guidando" (a meno di override), per cui hai la caratteristica della superclasse nella sottoclasse

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.