MyFunction を実装した無名クラスのインスタンスを返す例。
こういう方が好きだなぁ。リフレクションと違ってコンパイル時に名前解決するし。
クラスだらけになるけど。
なお、必要なければいちいち create せずに Caller のコンストラクタで一個用意してもいいし。

public interface MyFunction {
 public void funcX(String str);
}

public class Caller {
 void func() {
  MyFunction[] funcs = { createFuncA(), createFuncB(), createFuncC() };
  //略
  funcs[index].funcX(str);
 }
 public MyFunction createFuncA() {
  return new MyFunction() {
   public void funcX(String str) {
    //場合によっては TheClass の内部にアクセスするなんやかや
   }
  };
 }
 public MyFunction createFuncB() {
  return new MyFunction() { /*略*/ };
 }
 public MyFunction createFuncC() {
  return new MyFunction() { /*略*/ };
 }
}