Grazie della risposta.
E' quello che avevo letto riguardo al polimorfismo in java. Per� mi chiedevo se c'� un modo semplice per far prendere quel valore.
Mi spiego meglio: mi son reso conto che ogni metodo load delle classi derivate fanno la stessa cosa (leggere una conf da file), quello che cambia � il file.
Quindi ho spostato il metodo dentro Component, sperando che quel _id (che uso come nome del file di conf) cambiasse con la l'istanza derivata.
In codice:
codice:
class Component{
protected String _id;
public Component(){
String fileName = "configs/component_" + this._id + ".xml";
// Leggo il file etc
}
}
Quindi nelle classi derivate impostavo solo quel _id, cos� al momento della creazione dell'oggetto caricava la sua configurazione.
Avevo pensato anche di impostare _id nel costruttore (della derivata), ma super() deve essere la prima istruzione, il che rende inutile la cosa.
Per adesso ho "risolto" spostando la lettura della configurazione su un altro metodo ed impostando l'_id nel costruttore, ma devo chiamare esplicitamente la lettura del file:
codice:
class XComponent extends Component{
public XComponent(){
this._id = 'X';
}
}
...
Component x = new XComponent();
x.loadConfig();
C'� qualcosa di pi� semplice in java?