Objectに定義されているメソッドの実装を強制する
Object#hashCode(), Object#equals() などのメソッドは抽象クラスの抽象メソッドとして定義できる。
上記のクラスを継承したら、hashCode(), equals() を実装しないとコンパイルエラーになる。
public abstract class MyAbstractClass {
public abstract int hashCode();
public abstract boolean equals(Object obj);
}
インターフェースだと意味無し。
上記のインターフェースを implements してもコンパイルエラーにはならない。
public interface MyInterface {
public int hashCode();
public boolean equals(Object obj);
}