Czesc, mam problem przedstawie najpierw fragment kodu:
abstract class Figura {
...
abstract double dajMaksymalnyPunktX();
...
}
Mam klase Trojkat i Czworokat ktora dziedziczy po Figurze i implementuje metode jak wyzej. I teraz jak chce posortowac tablice porownujac elementy:
class porownajMaxWartosciX implements Comparator<Figura>{
public int compare(Figura objekt1, Figura objekt2){
double x1 = objekt1.dajMaksymalnyPunktX();
double x2 = objekt2.dajMaksymalnyPunktX();
if(x1 < x2)
return 1;
else if(x1 > x2)
return -1;
else
return 0;
}
}
To wysypuje sie program. Dodam ze w ten sposob wszystko dziala ok:
if(objekt1 instanceof Trojkat)
{
x1 = ((Trojkat)objekt1).dajMaksymalnyPunktX();
}
Metode wywoluje w ten sposob :
Figura [] tablica = tablicaTrojkatow;
Arrays.sort(tablica, new porownajMaxWartosciX());
return tab[0].dajMaksymalnyPunktX();
Ktos moze ma jakis pomysl o co chodzi ?!