Dopo alcune ricerche non ho trovato nessuna risposta valida alla mia domanda riguardante il costruttore di copie e l'ereditarietà. Ho due classi: utente e tirocinante. Il tirocinante eredita dall'utente e due parametri di stringa vengono aggiunti al tirocinante. Ora sono riuscito a creare un costruttore di copia di User ma non sono soddisfatto del mio costruttore di copia di Trainee. Il codice del costruttore di copia utente è come questo:java copy constructor ed ereditarietà
public User (User clone) {
this(clone.getId(),
clone.getCivilite(),
clone.getNom(),
clone.getPrenom(),
clone.getEmail(),
clone.getLogin(),
clone.getTel(),
clone.getPortable(),
clone.getInscription(),
clone.getPw()
);
}
Ho cercato di usare eccellente nel mio Apprendista costruttore di copia:
public Trainee (Trainee clone) {
super (clone);
this (clone.getOsia(), clone.getDateNaiss());
}
Ma non ha funzionato e sono stato costretto a codificare un versione completa del costruttore di copia:
public Trainee (Trainee clone) {
this(clone.getId(),
clone.getCivilite(),
clone.getNom(),
clone.getPrenom(),
clone.getEmail(),
clone.getLogin(),
clone.getTel(),
clone.getPortable(),
clone.getInscription(),
clone.getPw(),
clone.getOsia(),
clone.getDateNaiss()
);
}
a causa della costruzione del mio principale devo lanciare la mia nuova istanza in questo modo:
User train = new Trainee();
User train2 = new Trainee((Trainee) train);
Quindi la mia domanda è: c'è un modo più pulito per fare questo? Non posso usare un super?
Grazie in anticipo per le vostre risposte e assistenza.
cosa non ha funzionato quando hai usato 'super (clone)' – Xymostech