Homophones are words that sound the same but are different in meaning or spelling. Homographs are spelled the same but differ in meaning or pronunciation. Homonyms can be either or even both.
Explanation:
Homophones are words that sound the same but differ in spelling, meaning, or etymology. These words can be spelled differently from one another (like to, too, and two) or they can be spelled the same way (like quail, which can mean both a sort of bird and "to cower").
Homographs are words that have the same spelling but a different pronunciation, meaning, or place of origin. Sometimes these terms have different sounds (such as the bow of a ship and the bow that fires arrows), while other times they have similar sounds (such as the phrase quail, which can mean either "to cower" or "a particular kind of bird").
Both homophones and homographs can be referred to as homonyms. Some people believe that the only words that should be considered homonyms are those whose spellings are similar but whose pronunciation and meanings differ, such as the bow of a ship and the bow that launches arrows.