I'd say "Giraffes have long necks". "Giraffes have got a long neck" sounds to me like something a three-year-old child would say.
Maybe, a three-year-old or an Aussie.
"Giraffes have" in this context means "The Giraffe has ..." ie. the giraffe as a species.
"Dogs generally have a longer and wider nose than cats." Sounds OK to me.