A criação de um objeto da interface Coins ( ) pode ser corre...
int
PENNY = 1,
NICKEL = 5,
DIME = 10,
QUARTER = 25,
DOLAR = 100;
}
class SodaMachine implements Coins {
int price = 3*QUARTER;
// ...
}
Considerando o código Java acima, que implementa uma
interface sem modos definidos, julgue os itens seguintes.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E - errado
Para entender a correção desta questão, precisamos primeiramente compreender o que são interfaces em Java e como elas funcionam. Uma interface é uma estrutura que pode conter constantes e métodos abstratos, mas não pode ser instanciada diretamente. Ou seja, você não pode criar um objeto de uma interface usando o operador new como faria com uma classe. Interfaces são usadas para definir um contrato que outras classes podem implementar, garantindo que essas classes tenham determinados métodos.
No caso do código apresentado, Coins
é uma interface que define constantes para os diferentes tipos de moedas. A classe SodaMachine
implementa essa interface, significando que ela pode usar as constantes definidas em Coins
, como faz ao definir o preço de um refrigerante (price = 3*QUARTER
).
A afirmação de que você pode criar um objeto da interface Coins
diretamente com new Coins()
é incorreta. Em Java, você somente pode criar instâncias de classes concretas ou de classes anônimas que implementem a interface. Por isso, a maneira correta de criar um objeto que tenha relação com a interface Coins
seria instanciar um objeto da classe SodaMachine
, que implementa Coins
, usando o seu construtor, assim:
SodaMachine soda = new SodaMachine();
Espero que a explicação tenha ajudado a esclarecer a questão! Lembre-se sempre de que interfaces em Java são usadas para definir um conjunto de métodos que as classes implementadoras devem fornecer, e que interfaces não podem ser diretamente instanciadas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Interfaces não podem ser instanciadas...
Coins c = new SodaMachine ( );
Como temos em Java
List l = new ArrayList ();
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo