Ciao svolgendo un esercizio di una classe stratta:

codice:
abstract class Blocco implements Comparable<Blocco>{
    String colore;
Blocco(String jolly){
    this.colore=jolly;
}
public String getColore(){
    return colore;
}
public abstract boolean npuoStareSopra(Blocco b);
public abstract int compareTo(Blocco y);
}
fin qui tutto ok...poi:

codice:
class BloccoNumerato extends Blocco {
    String colore;
    int numero;
BloccoNumerato(String colore,int numero){
    super(colore);
    this.numero=numero;
}
public boolean npuoStareSopra(BloccoNumerato b){
    if(b.colore!=null && b.colore.equals("JOLLY")){
        return true;
    }else
    return false;
}
public int compareTo(BloccoNumerato bn)    {
    int color=colore.compareTo(bn.colore);
        return color;
    }
}
e qui il problema...ho implemtetao tutti i metodi astratti della superclasse(astratta) e il compilatore mi segnale un errore di BloccoNumerato is not abstract and does not override abstract method compareTo(Blocco) in Blocco...perchè mi esce questo errore?