Funkcje rozszerzające są wywoływane statycznie na podstawie typu kompilacyjnego, a nie runtime. Nie nadpisują metod członkowskich. Typowy haczyk: wywołanie rozszerzenia na zmiennej o typie bazowym nie uruchomi rozszerzenia z typu pochodnego.