>>624
インターフェースでいいのなら Hoge の方は class Hoge implements Fuga { ... } みたいにして Fuga は読み出しのみの
メソッドアクセスだけ定義しておいて、func は Fuga で受け付ける(つまり func(Fuga x))ように書いておけば良い。