interface Usable {
void use(ItemTarget target);
}

class Bomb implements Usable {
public void use(ItemTarget target) {
String name = target.getName();
System.out.printf("%sは吹き飛んだ!%n", name);
}
}

class Herb implements Usable {
public void useOn(Target target) {
String name = target.getName();
System.out.printf("%sの傷が回復した!%n", name);
}
}

呼び出し
use(Usable usable, Target target) { item.use(target); }