Complete Dominance
The dominant gene produces a protein that causes the corresponding trait to be fully expressed in the offspring whether it is homozygous dominant (TT) or heterozygous (Tt). The recessive gene does not produce a protein.
Incomplete Dominance
The dominant gene produces a protein that causes the corresponding trait to be partially expressed in the offspring. When the offspring is homozygous dominant (TT) for the gene the trait is fully expressed. When the offspring is heterozygous (Tt) for the gene the trait is only partially expressed, resulting in an intermediate. The recessive gene does not produce a protein.
Codominance
The dominant gene produces a protein that causes the corresponding trait to be expressed. The recessive gene also produces a protein that causes the corresponding trait to be expressed. When the offspring is homozygous dominant (TT) the dominate trait is fully expressed. When the offspring is homozygous recessive (tt) the recessive trait is fully expressed. When the offspring is heterozygous (Tt) both traits are expressed resulting in an intermediate. The key to remember is that BOTH the dominant and recessive gene produce a protein.