interface IHoge {
 public String get();
}

class HogeA implements IHoge {
 public String get() { return "ほげA"; } // この戻り値はどっかから取ってきたもの。
}

class HogeB implements IHoge {
 public String get() { return "ほげB"; } // この戻り値はHogeAとは違うどっかから取ってきたもの。
}

class MainClass {
public void method(IHoge hoge) {
  System.out.println(hoge.get());
}
}

↑こう言える。「MainClass#methodメソッドは、HogeAやHogeBから独立している。
ただ、値のやり取りの際の決め事として、IHogeインタフェースを希望しているだけ」
と。