- , . , A B, A , B, , B ( B).
, , , . compareTo .
? , Comparable<T> , . , -, , , compareTo , , , .
, , , - Square ColorSquare. compareTo :
@Override
public int compareTo(Square other) {
return this.len - other.len;
}
... ColorSquare (, ). Java ColorSquare Comparable<ColorSquare> ( Comparable<Square>), , :
@Override
public int compareTo(Square other) {
int cmp = super.compareTo(other);
if (cmp == 0 && (other instanceof ColorSquare)) {
ColorSquare otherColor = (ColorSquare) other;
cmp = color.compareTo(otherColor.color);
}
return cmp;
}
. - ColorSquare, ; .
, :
Square a = ...
ColorSquare b = ...
ColorSquare c = ...
assert a.compareTo(b) == 0;
assert a.compareTo(c) == 0;
assert b.compareTo(c) == 1;