Newsgroup: it.comp.java
Titolo: da oggetto generico a oggetto specifico

ciao a tutti
seun oggetto padre e ne voglio uno figlio che sia il padre piu le
funzionalità del figlio come posso fare ?
class Animale
{}
class Mucca extends Animale
{}
main
{
  Animale animale = new Animale();
  Mucca mucca;
  // * vorrei che mucca sia esattamente quello che è animale piu le
funzionalità
  // * che l'oggetto Mucca mette a disposizione
}
finora, avendo pochi campi mi sono limitato a fare una cosa del genere:
class Mucca extends Animale
{
  public Mucca( Animale a )
  {
     this.fld0 = a.fld0;
     this.fld1 = a.fld1;
  }
}
ma ora che mi ritrovo un oggetto complesso con dozzine di campi mi
chiedo
se c'è un modo piu veloce/elegante/blabla che si usa in genere

 funzionalità del figlio come posso fare ?
Quello che hai fatto è da manuale, esprimi meglio quale sarebbe il tuo
problema.


l'ereditarietà serve proprio a questo.
Non capisco la tua domanda.
copesc
----
http://java.information-technology-articles.com
http://db.information-technology-articles.com
http://cms.information-technology-articles.com
http://webdevelopment.information-technology-
http://articles.com
http://cplusplus.information-technology-articles.com
http://oracle.information-technology-articles.com


penso che il suo problema sia questo:
  public Mucca( Animale a )
  {
     this.fld0 = a.fld0;
     this.fld1 = a.fld1;
  }
chiede se esiste un metodo piu' veloce invece di fare this.fld0 =
a.fld0;. Perche' se ha solo fld0 e fld1 va bene, ma se ha fld0,
fld1,...fld100 allora e' un po' palloso.

 fld1,...fld100 allora e' un po' palloso.
Grazie jack, effettivamente era proprio questo il problema, e mi
è parso di capire che questa è la prassi standard.. vabbè
Grazie a tutti
ciao

> 
G> chiede se esiste un metodo piu' veloce invece di fare this.fld0 =
G> a.fld0;. Perche' se ha solo fld0 e fld1 va bene, ma se ha fld0,
G> fld1,...fld100 allora e' un po' palloso.
Nel caso di un costruttore di una classe figlia che accetti un istanza
di un  oggetto della classe  padre per inizializzare il  nuovo oggetto
non ci sono  santi. Si tratta in pratica di  clonare l'oggetto padre e
di qui non si scappa.
Volendo ci si potrebbe scrivere del codice che lavori di reflection per
creare il nuovo oggetto, ma non so se ne vale la pena.
BTW, Vincent, questo è uno dei  classici casi in cui lascio che sia il
mio editor a fare il 90% del lavoro :), io dico COSA fare e lui fa :).
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software

 è parso di capire che questa è la prassi standard.. vabbè
Ti conviene iniziare a dare un'occhiata ai design pattern di creazione,
factory o builder.
Lo standard per le creazioni complesse in java è questo.

 mio editor a fare il 90% del lavoro :), io dico COSA fare e lui fa :).
Poi ti manutiene anche lo sbrodolo di codice che genera? :P
Il problema non è mica generarlo, il codice. Col copia/incolla sai
quanto ne generi...

> fa :).
VV> Poi ti manutiene anche lo sbrodolo di codice che genera? :P Il
VV> problema non è mica generarlo, il codice. Col copia/incolla sai
VV> quanto ne generi...
Non e` copia  incolla, quello e` banale. E si,  mantiene :), così come
genera mantiene.
