Acho que a parte confusa é que, se você escreve int Property { get; set; }
dentro de uma classe, é uma propriedade automática com um campo implícito de apoio.
Mas se você escrever exatamente a mesma coisa em uma interface, não é propriedade automática , apenas declara que a propriedade faz parte da interface e que qualquer tipo que implemente a interface deve conter essa propriedade (como propriedade automática ou não ), mas não cria o campo de apoio.
Uma maneira de ver a diferença é escrever int Property { get; }
: isso é válido em uma interface e declara uma propriedade que possui apenas um getter, mas nenhum setter. Mas não será compilado em uma classe (a menos que você esteja usando o C # 6.0), porque a propriedade automática precisa ter um setter.