Ciao ho un problema con le classi astratte; se definiscono dei metodi astratti,essi devono essere implementati dalle sottoclassi.Fonoscono quindi lo scheletro per le classi figlie.E qui sta il problema.
Devo costuire un programma che costruisca una torre,formata da blocchi e da blocchi numerati:
Fin qui tutto bene e tutto è compilato correttamente. Poi la sua sottoclasse:codice:abstract class Blocco implements Comparable{ String colore; Blocco(String colore){ this.colore=colore; } public String getColore(){ return colore; } abstract boolean npuoStareSopra(Blocco b); abstract int compareTo(Blocco y); }
Il compilatore mi segnala un errore alla prima riga della sottoclasse BloccoNumerato di tipo:codice:class BloccoNumerato extends Blocco { String colore; int numero; BloccoNumerato(String colore,int numero){ super(colore); this.numero=numero; } public boolean npuoStareSopra(Blocco b){ if(b!=null && b.colore.equals(colore)){ return true; }else return false; } public int compareTo(Blocco y){ int color=colore.compareTo(y.colore); return color; } }
BloccoNumerato is not abstract and does not override abstract method compareTo(java.lang.Object) in java.lang.Comparable
class BloccoNumerato extends Blocco {
Adesso mi chiedo...ho implementato tutti i metodi della classe astratta Blocco,Perchè mi dà errore?Poi se nella classe Blocco, inserisco la seguente dichiarazione :abstract class Blocco implements Comparable<Blocco>,il compilatore mi dà errore perche?![]()
![]()

Rispondi quotando
