Java1.4では継承関係のある戻り値オーバライドはできない
親クラス
public class Hoge {
public Hoge get() {
return new Hoge();
}
}
親クラスを継承し、get()メソッドをオーバライド
public class Fuga extends Hoge {
public Fuga get() {
return (Fuga) Hoge.get();
}
}
Java1.4の場合type mismatchでエラーとなる。Java5の場合はcovariant return types 機能により、戻り型がオーバライドをしたメソッドのサブクラスであればオーバライドできる。