Quote Originariamente inviata da LeleFT Visualizza il messaggio
Primo errore che ho visto: la classe Quadrato estende Rettangolo, ma nel costruttore di Quadrato richiami super(x, y); Peccato che la classe Rettangolo non abbia un costruttore che riceve solo 2 argomenti... Ne ha uno che non riceve argomenti e uno che ne riceve 4. Tu sei obbligato a richiamare uno di questi due.

Se hai una classe Y che estende la classe X allora il costruttore della classe Y dovrà obbligatoriamente richiamare uno dei costruttori della classe X. Se non lo fai tu esplicitamente con una chiamata a super(...), il compilatore tenterà di aggiungere automaticamente una chiamata al costruttore di default ( super(); senza argomenti ). Se la superclasse X ha un costruttore di default, bene, altrimenti avrai un errore in compilazione.

Alla luce di questo, sistema la chiamata a super() della classe Quadrato perchè così com'è non compila proprio.

PS: prima di incollare il codice preso direttamente dal tuo editor, assicurati di aver rimosso tutte le formattazioni di colore: incolla il codice all'interno del blocco note di Windows (o di un qualsiasi editor NEUTRO), poi ricopialo e incollalo nel forum. Come vedi, intervenire dopo è un disastro.


Ciao.
grazie per le delucidazioni se posso , senza aprire ulteriore 3d, vorrei sapere come mai se faccio una cosa del genere con tipi wrappati , mi restituisce falso .... :/ Credo sia dovuto al fatto che i wrapper sono immutabili e venga, probabilmente, considerato solo il primo byte dell'intero , quindi -127 e 127 ma non ne sono sicuro . Grazie
Integer x = new Integer (1000);
Integer y = new Integer (1000);
x == y; // false!