回答
food と foods の使い分けは、わりと簡単に理解できます。
人や他の生き物が食べる「食物」というものを総称する(まとめて呼ぶ)のであれば、food と単数扱いにします。この場合、数えない(不可算)という扱いをします。
We have a lot of food, so please don't bring any to us.
All living things, human, animals and plants alike, need food to sustain our lives.
これらの場合、具体的なこれこれの個別の食べ物、というよりも、「食物」というもの全体をまとめて呼んでいます。
(日本語では総称としての「食物」を「食べ物」と呼ぶこともあると思います。)
まとめた総称ではなく個別の「食べ物」という意味で food を使う場合は、数えられる(可算)という扱いをするので、単数であれば a food、複数であれば foods と使います。
I grew up eating a good variety of foods, so I can eat pretty much anything now.
Eating healthy foods every day is a key to good health.
これらの場合、具体的なこれこれの個別の食べ物がいろいろ集まったものとして食べ物を語っているので、foods を使うのが適正です。
想像してみて、漠然とぼやーっとした感じで具体的に何と言われるとわかんないけどなんとなく食べ物〜、という感じであれば、不可算(単数の a や 複数形の s がつかない)の扱いにして、具体的に、あ、あそこにりんごがある、こっちには唐揚げがある、というようにイメージとして個別の食べ物たちが思い浮かぶ場合は、可算(単数の a や複数形の s をつける)の扱いで呼ぶ、ということにするといい感じだと思います。
fruit と fruits の違いも全く同じで、
「果物」というものを総称する場合は不可算の扱いにして fruit(a などはつかない)
個別のそれぞれの「果物」という場合は fruits(単数の場合は a をつける)
というふうに使い分けます。