Objectに定義されているメソッドの実装を強制する

Object#hashCode(), Object#equals() などのメソッドは抽象クラスの抽象メソッドとして定義できる。


public abstract class MyAbstractClass {
public abstract int hashCode();
public abstract boolean equals(Object obj);
}
上記のクラスを継承したら、hashCode(), equals() を実装しないとコンパイルエラーになる。

インターフェースだと意味無し。


public interface MyInterface {
public int hashCode();
public boolean equals(Object obj);
}
上記のインターフェースを implements してもコンパイルエラーにはならない。