Wa - Ads - Sem 4 - Unidade 2 - Desenvolvimento Orientado a Objetos II 1 WebAula 1Implementação de classes abstratas e interfaces Classes Abstratas Existem ocasiões nas quais as classes seguem um padrão para que no futuro outras classes herdem desta classe base. Neste caso já se tem a herança em mente. Imagine que ao criar uma classe você perceba que, ao invés dela servir a um único propósito, possa ser generalizada e usada para outros objetivos. Imagine que você esta criando uma classe e que pretende usá-la para efetuar processos, por exemplo, cálculos para retângulos, quadrados, paralelogramos e triângulos. O primeiro pensamento que vem é que todos estes objetos têm algo em comum, portanto pode-se criar uma classe que atenda a todos, mesmo que os processos (no caso algum cálculo) sejam diferentes em cada um.Esta classe seria uma Classe Base para eles. Como são objetos geométricos e cada um tem uma forma diferente, pode-se criar uma classe que tenha atributos e métodos que sirvam para todos, porém podem existir métodos que sejam comuns a todos, mas que o trabalho realizado seja diferente para cada objeto. Para atender a este problema, existem as classes abstratas e métodos abstratos, além de propriedades, eventos e indexadores abstratos. A implementação deste tipo de classe é diferente das chamadas Classes Concretas. Se cada objeto geométrico é uma classe, pode-se criar uma que seja a classe base para elas, por exemplo, Classe Forma. Neste caso, não se faz necessária a implementação de métodos particulares, apenas especificações, permitindo que a criação de apenas o protótipo de métodos, isto é, métodos que não têm bloco de comando, somente seu escopo. Estes métodos recebem o nome de métodos abstratos. O código de cada um destes métodos é feito somente nas classes derivadas da classe abstrata. Entretanto, existem duas implicações:a) não é possível instanciar objetos da classe, uma vez que os métodos são incompletos;b) há a obrigatoriedade da implementação