1 - Interfaces

Vale lembrar que a criação de classes por meio de herança é muito útil quando as subclasses compartilham a implementação de métodos e atributos da classe pai. Conforme já vimos, podíamos criar uma classe Forma e derivar diversas subclasses como Retângulo, Quadrado e Círculo.

Entretanto, se prestarmos mais atenção ao código que escrevemos, podemos verificar que a classe Forma não acrescenta muito nas demais classes, visto que existem diversas formas diferentes (oval, circulo, retângulo, quadrado etc.) e cada uma tem métodos muito particulares e atributos diferentes. Assim pudemos perceber que não se ganhou muito com a herança da classe Forma, pois não houve praticamente nenhum reaproveitamento de atributos e da implementação de métodos. O que fizemos foi usar apenas as assinaturas dos métodos da classe forma e tivemos que sobrescrevê-los.

Se não houver um real ganho de implementação de código, não é recomendado o uso de herança de classes reais, e sim o uso de interfaces e, em um segundo momento, de classes abstratas.
Copyright © 2014 AIEC.