Buscar

Programação orientada a objetos interfaces e classes abstratas

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando