Homonyms are words different in meaning but identical in sound or spelling, or both in sound and spelling.
Homonyms can appear in the language not only as a result of split of polysemy, but also as a result of levelling of grammar inflexions, when different parts of speech become identical in their outer aspect: care from caru and care from carian.
They can also be formed by means of conversion: slim – to slim.
They can be formed with the help of the same suffix from the same stem:
reader – a person who reads and a book for reading.
They can be the result of forming splinters, completives and lexical abbreviations: bio – a splinter with the meaning biology, biological as in the word biometrics; bio – a combining form with the meaning life as in the word biology;
bio – a lexical shortening of the word biography with the meaning a short biography.
Homonyms can also appear in the language accidentally when two words coincide in their development, e.g. two native words can coincide in their outer aspects: to bear from beran (to carry) and bear from bera (an animal). A native word and a borrowing can coincide in their outer aspects, e.g. fair from Latin feria and fair from native fager (blond). Two borrowings can coincide, e.g. base from the French base (Latin basis) and base (low) from the Latin bas (Italian basso).
Homonyms can develop through shortening of different words: COD from Concise Oxford Dictionary and cash on delivery.