Ciao! Ho assolutamente bisogno di un consiglio. Ho un problema con degli ordinamenti poichè non so come gestirli in presenza di classi astratte.
Mi hanno dato la seguente classe astratta:

package BankServices;


public abstract class Operation {

public abstract String toString();
}

E le classi che la estendono:

package BankServices;
public class Deposit extends Operation implements Comparable{
private int dataop;
private double cifra;
public Deposit (int dataop, double cifra){
this.dataop = dataop;
this.cifra = cifra;
}
public double getCifra(){
return cifra;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return dataop + "," + cifra + "+";
}
}


package BankServices;
public class Withdrawal extends Operation{
private int dataop;
private double cifra;
public Withdrawal (int dataop, double cifra){
this.dataop = dataop;
this.cifra = cifra;
}
public double getCifra(){
return cifra;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return dataop + "," + cifra + "-";
}
}




Mi chiedono di creare due liste di oggetti Deposit e Withdrawal ordinate per cifra decrescente e una lista di oggetti Operation ordinate per dataop decrescente. Potete scrivermi la soluzione? Non so proprio da che parte iniziare.

Questi sono i metodi nella classe principale che restituisconole liste ordinate:

public List<Operation> getMovements() {
}

public List<Deposit> getDeposits() {
}


public List<Withdrawal> getWithdrawals() {
}