Informática, perguntado por maxandretti, 1 ano atrás

Quando se está desenvolvendo um sistema, é uma boa prática de programação utilizar interfaces nos locais onde diferentes módulos serão interligados. Quando se utiliza interfaces, um módulo não precisa saber como o outro está implementado, pois ele só utiliza os métodos abstratos da interface. Outra vantagem é que é possível criar novas classes concretas que implementam a interface e, assim, o outro módulo não precisará ser alterado, pois ele trabalha com a interface e não com as classes concretas. Observe o código e assinale a alternativa correta.



1. O programa não possui erros. A classe Pessoa é flexível, já que o método vestirRoupa recebe como parâmetro a interface Roupa e é possível existir diversas implementações para esta interface.


2. O programa possui um erro. No método main, o método vestirRoupa recebe um objeto Camiseta e Calca, porém o método vestirRoupa só aceita a interface Roupa como parâmetro.


3. O programa possui um erro. As classes Camiseta e Calca implementam a mesma interface: Roupa. Uma interface deve ser implementada somente por uma classe.


4. O programa possui um erro. As classes Camiseta e Calca utilizam a anotação @Override, porém ela deve ser utilizada somente para sobrescrever métodos de classes abstratas.


5. Se o programa for executado, somente é impresso na tela: "A pessoa veste: camiseta" e "A pessoa veste: calça".

Anexos:

Soluções para a tarefa

Respondido por pablocvtw4
20

Alternativa correta: O programa não possui erros. A classe Pessoa é flexível, já que o método vestirRoupa recebe como parâmetro a interface Roupa e é possível existir diversas implementações para esta interface.

Explicação das outras:

Se o programa for executado, somente é impresso na tela: "A pessoa veste: camiseta" e "A pessoa veste: calça".

Na verdade, De acordo com as linhas da classe Aplicacao, serão impressas as seguintes informações:

A pessoa está pelada  A Pessoa veste: camiseta A Pessoa veste: calça

O programa possui um erro. As classes Camiseta e Calca implementam a mesma interface: Roupa. Uma interface deve ser implementada somente por uma classe.

Uma Interface pode ter várias classes implementando seus métodos. Classes abstratas é que devem ter somente uma única classe implementando seus métodos.

O programa possui um erro. As classes Camiseta e Calca utilizam a anotação @Override, porém ela deve ser utilizada somente para sobrescrever métodos de classes abstratas.

Errado. A notação @Override é usada nas classes para implementar métodos encontrados em abstratos quanto para Interfaces.

O programa possui um erro. No método main, o método vestirRoupa recebe um objeto Camiseta e Calca, porém o método vestirRoupa só aceita a interface Roupa como parâmetro.

A interface Roupa não serve como parâmetro. Ela está apenas sendo uma espécie de base na qual outras classes são construídas. A classe Roupa utilizada as classes "camiseta" e "calca" como parâmetro.

Perguntas interessantes