giulio0 ha scritto:
2) che collegamento c'è tra il costruttore di Date e Holiday? Il costruttore di Holiday non dovrebbe essere slegato da quello di Date?
Partiamo da una cosa: i costruttori, per definizione, non vengono mai "ereditati" dalle sotto-classi. Se una classe ha es. 3 costruttori, la sotto-classe NON ha "di serie" quei 3 costruttori con quelle stesse forme. Li devi scrivere esplicitamente, se vuoi.
L'altro aspetto: la fase di costruzione/inizializzazione dell'oggetto deve sempre arrivare fino a Object, cioè un costruttore deve invocare un super-costruttore ecc.. fino ad invocare quello di Object (che non fa nulla di particolare).
La prima istruzione di un costruttore DEVE essere una invocazione super( .... ) o this( .... ) con o senza argomenti, per invocare un altro costruttore. Se non metti una di queste due, il compilatore ci mette per default un super(); senza argomenti.
Nel tuo caso Holiday avrebbe:
public Holiday(String n) {
super(); // <--- inserito dal compilatore
name = n;
// ...
}
Quindi si aspetterebbe di invocare un costruttore di Date che non ha parametri. Peccato che ... Date NON ha un costruttore senza parametri, perché ne hai inserito uno tu fatto come Date(String d, String m)