You can say either "have" or "eat". Breakfast, lunch and dinner all mean food... which you logically eat anyway... so "have" fits perfectly.
The use of "take" is a little older, and I think most moderns speakers opt for "have". We still use "take" for medicine, of course.