Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Programação orientada a objetos: interfaces e classes abstratas 1. As classes abstratas são classes que determinam um tipo, são como uma espécie de rascunho de como as classes que a implementam devem se comportar. Sobre os conceitos de uma classe abstrata, assinale a alternativa correta: R: C. Classes abstratas não podem ser instanciadas. Em uma classe abstrata, não é necessário que todos os métodos sejam definidos como abstratos. Não existe restrição ao conceito de polimorfismo pelas classes herdeiras, ao contrário, a obrigação de implementação de métodos abstratos pelas classes herdeiras é o conceito de polimorfismo dinâmico. As classes abstratas não podem ser instanciadas, apenas definem o modelo que deve ser seguido por suas classes herdeiras. Não é necessário que as classes herdeiras implementem todos os métodos das classes abstratas. Classes abstratas não são um tipo de encapsulamento, seu conceito é justamente ao contrário, deixando a implementação por conta das classes herdeiras. 2. Outras questões são também importantes ao considerar o conceito de classes abstratas. Analise as afirmativas a seguir e assinale aquela que está correta acerca dos conceitos de classes abstratas. R: A. Uma classe abstrata pode herdar de outra classe abstrata. Uma classe abstrata pode herdar de outra classe abstrata, não existe restrição. Os métodos abstratos não têm implementação na classe abstrata; são implementados pelas classes herdeiras. Apesar de as classes abstratas não conterem instâncias, elas são consideradas superclasses. Nas classes abstratas podem ser definidos métodos construtores e eventos como em outras classes e a sua funcionalidade é complementada pelas classes derivadas, pois estas implementam os métodos abstratos da classe. 3. Classes abstratas têm um significado diretamente ligado ao conceito de herança. São classes que não fazem sentido sem que exista uma relação de herança de outras classes com a classe abstrata. Em relação a essa afirmativa, marque a alternativa correta sobre a relação entre classes abstratas e herança na orientação a objetos: R: D. As classes abstratas impedem que a instância de objetos seja a partir da classe genérica. Com a utilização de classes abstratas, diferentemente do caso de herança, não é possível um objeto ser instanciado a partir da classe genérica ou superclasse. Os métodos genéricos, tanto em herança como em classes abstratas, podem tanto ser implementados na classe genérica como nas derivadas, apesar de o ideal ser somente na primeira. As classes abstratas são declaradas de forma diferente da superclasse na herança, caso contrário não fariam sentido, e, tanto em classes abstratas como em herança, novos métodos podem ser acrescentados na classe abstrata após herança com uma classe derivada. 4. As interfaces em programação orientada a objetos são outro recurso importante e que, dependendo do contexto, possibilita algumas vantagens se comparado ao uso de classes abstratas. Uma das principais vantagens da utilização de interfaces está relacionada ao fato de que: R: E. A vantagem principal das interfaces é que não há limites de quantas interfaces uma classe pode implementar. A principal vantagem das interfaces é que não existe um limite de quantas interfaces uma classe pode implementar, diferentemente de classes abstratas. As interfaces, todavia, exigem que as classes que as referenciam implementem todos os seus métodos. Não existe vantagem em otimização de memória entre uma ou outra, isso depende da implementação do programa. Assim como nas classes abstratas, não é possível instanciar objetos a partir das interfaces. As interfaces não definem um tipo de classe padrão, isso está mais relacionado às classes abstratas. 5. O seguinte trecho de código em linguagem de programação Java especifica uma interface para classes que implementem um tipo de FiguraGeometrica: public interface FiguraGeometrica { public String getNomeFigura(); public int getArea(); public int getPerimetro(); } Assinale a alternativa que contém uma afirmativa correta sobre o trecho apresentado: R: A. As classes podem conter diferentes implementações dos métodos de FiguraGeometrica. Como se trata de uma interface, é possível afirmar que todas as classes que implementam a interface podem ter diferentes execuções dos seus métodos. Todas as classes que herdam, necessariamente, devem implementar, mesmo que igualmente, os seus métodos, mas todos devem obedecer à assinatura dos métodos definidos na interface. Pode-se ter outra interface FiguraGeometrica com um nome diferente; e as classes podem implementar uma ou outra, ou mesmo as duas. Não é possível afirmar que todas as classes implementam todos os métodos com o mesmo escopo, apesar de ser possível, pois as interfaces não restringem isso.
Compartilhar