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

    [JAVA] ereditarietà tra classi

    Salve.Sto continuando il mio progetto sul Monopoli.Finalemente è quasi finito e lunedì ci sarà la consegna.Però ho un problema con l'ereditarietà delle classi.Adesso vi spiego:
    Ho creato una classe Contratto che ha come attributi nome,colore, valore d'acquisto, e ho creato 3 classi che extendono Contratto e sono Terreno , stazione , servizi.In queste classi setto in terreno la rendita del solo terreno,la rendita con una casa...ecc.In stazione la rendita con 1 stazione, con 2 stazioni ... ecc.
    Adesso andando su una casella(contratto) vorrei che a secondo se è un terreno,stazione,servizi avere il valore rendita del terreno, rendita stazioni,rendita servizi.Dalla Classe Partita riesco a vedere il Contratto con i soli attributi Nome,colore ecc... ma non quelli della classe Terreno,Stazione,Servizi.Io vorrei accedere agli atributi delle sottoclassi conoscendo il padre (contratto).Mi sapete dire come devo fare??? Grazie.
    Ciao

  2. #2
    Ci sono diverse soluzioni che puoi adottare.

    Intanto potresti generare un metodo getRendita() nella classe Contratto, che ritorna la rendita del Contratto.

    Ovviamente, ridefinendo lo stesso motodo in una sottoclasse, tipo in Terreno, il metodo ritorna la rendita secondo le logiche del Terreno.

    In queste classi setto in terreno la rendita del solo terreno,la rendita con una casa...ecc. In stazione la rendita con 1 stazione, con 2 stazioni ... ecc.
    Una cosa non mi è chiara: la rendita è generata in funzione di parametri differenti per classe?

    Se così potresti definire il metodo getRendita(Object[] param), in il metodo rendita calcolata su parametri per i quali non fissi un tipo vincolante

    Detto questo ti ricordo che esiste la parola riservata "instanceof", funzione che ritorna true se un oggetto è un'istanza di una particolare classe, esempio:
    codice:
    String a = new String("12");
    Integer x = new Integer(12);
    
    // Scriverà true
    System.out.println("a è una String? " + (a instanceof String));
    
    // Scriverà false
    System.out.println("x è una String? " + (x instanceof String));
    Ovviamente tutto il discorso appena fatto non tiene conto della progettazione dell'albero delle classi (Se Contratto è una classe valida, astratta o un'interfaccia).

    Ciao.

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.