>>445-449
参考書に書いてあるのと変わらない(抽象的な)気がするけど…。

たとえば、ふたつの値をとって大きい方を返す関数を作るとする。
public Integer max(Integer a, Integer b) { ... } ってなるよね。
整数だけじゃなくて、少数も扱いたいとなると
public Double max(Double a, Double b) { ... } も用意するね。
文字の比較もしたいとなると
public String max(String a, String b) { ... } も必要だよね。

こういったときに、引数と戻り値に「比較可能型」という抽象的なものを
指定できたら便利だと思わない? この比較可能型を Comparable とすれば
public Comparable max(Comparable a, Comparable b) { ... } を
用意するだけでいいことになるからね。

そのかわり、Integer, Double, String は比較可能型としての振る舞いを
備えている必要があるから、
public class Integer implements Comparable { ... }
public class Double implements Comparable { ... }
public class String implements Comparable { ... }
となるわけだ。