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

    Problema di ereditarietà di variabili d'istanza

    Ciao, ho un problema nel costruttore di una classe ereditata. Il testo dell'esercizio dice:

    Una rete è caratterizzata dal un suo codice identificativo (una stringa); una rete può essere di due tipi: ReteComposta, che contiene al suo interno altre reti; e ReteCelle, che contiene al suo interno delle celle.


    Il codice java è:



    RETE

    public abstract class Rete {


    private String codice;


    public Rete(String c){

    if(c==null)

    throw new RuntimeException("Tentativo di creazione Rete con stringa nulla");

    this.codice=c;

    }


    public String getCodice(){

    return codice;

    }

    public String toString(){

    return codice.toString();

    }





    ReteComposta

    import java.util.*;


    public class ReteComposta extends Rete implements Cloneable{

    private HashSet<Rete> comp;



    public ReteComposta(HashSet<Rete> c){

    if(null==c)

    throw new RuntimeException("Tentativo di creazione ReteComposta senza reti");

    this.comp=c;


    }



    Cosa devo aggiungere per ereditare le variabili d'istanza della classe rete?

    Grazie, ciao.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    I membri private non vengono ereditati. Quindi nel tuo codice sopra, la classe ReteComposta non eredita il campo 'codice' della classe Rete.

    Nota bene che nella classe ReteComposta il costruttore fa una chiamata super(), però nella classe Rete non c'è un costruttore senza argomenti. Pertanto il "design" della classe ReteComposta è sbagliato (e non compilerebbe nemmeno).


    P.S.: fare un toString() di un String è inutile. Inoltre al posto della eccezione RuntimeException vedrei meglio una eccezione IllegalArgumentException, che indica in modo più appropriato un argomento illegale.
    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.