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 機能により、戻り型がオーバライドをしたメソッドのサブクラスであればオーバライドできる。