Conceitos de Orientação a Objetos/Interface
A interface é bastante semelhante com o conceito de Classes Abstratas, todavia, sua principal diferença é o fato de todos os seus métodos serem abstratos. Na classe abstrata poderia haver métodos não abstratos, ou seja, métodos definidos, com seus devidos códigos implementados, enquanto que em uma interface isso não é possível. Além disso, uma interface não pode ser instanciada. No exemplo acima, a interface ElementoDiagrama tem apenas a declaração de métodos sem código. Já as classes Retângulo e Circulo, pelo fato de implementarem a interface ElementoDiagrama, possuem os métodos desenhar() e redimensionar() implementados com código.