itemManagerは

itemManager.useItem(id);
を実行するので

public void useItem(int id){
funcs [id] (itemData.param[id], bokking);
}
が呼ばれる

ここが一番難しいかも

ここは文法的にはデリゲートつて関数を変数に蓄えておいて呼び出すような処理
その応用編で、関数の配列にしてある