A partir das afirmativas abaixo relativas às características...
I. É possível utilizar vários blocos catch para capturar exceções vindas de um único bloco try.
II. Uma classe pode implementar mais de uma interface.
III. Todas as classes em Java herdam implicitamente a classe Object.
IV. É possível sobrecarregar um operador da linguagem como, por exemplo, o operador '+', assim como pode ser feito na linguagem C++.
Está(ão) correta(s) apenas a(s) afirmativa(s):
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - I, II e III.
Vamos analisar cada uma das afirmativas para entender por que a alternativa A é a resposta correta:
I. Afirmativa I está correta. Em Java, é comum o uso de múltiplos blocos catch associados a um único bloco try. Isso permite que diferentes exceções sejam tratadas de formas específicas. Cada bloco catch pode capturar um tipo diferente de exceção, permitindo que o código responda de maneira apropriada para cada caso excepcional que possa surgir durante a execução.
II. Afirmativa II está correta. Uma das características de orientação a objetos em Java é a capacidade de uma classe implementar múltiplas interfaces. Isso proporciona grande flexibilidade, permitindo a uma classe ter várias "visões" ou conjuntos de métodos que podem ser utilizados por diferentes partes do código ou em diferentes contextos.
III. Afirmativa III está correta. Todas as classes em Java herdam de uma classe base chamada Object. Isso significa que qualquer classe que você criar terá métodos fundamentais como toString(), equals(), hashCode(), entre outros, que são herdados de Object.
IV. Afirmativa IV está incorreta. Diferentemente de linguagens como C++, Java não permite a sobrecarga de operadores. Em Java, o comportamento dos operadores é fixo e não pode ser alterado ou estendido, o que simplifica a linguagem, mas também limita a capacidade de personalização que algumas linguagens como C++ oferecem.
Portanto, as afirmativas I, II e III são corretas e estão de acordo com as características e capacidades da linguagem Java, o que justifica a alternativa A como a correta.
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
II. CORRETO.
III. CORRETO.
IV. ERRADO. O único operador que é sobrecarregado no Java é o + para a concatenação de Strings. A sobrecarga de operadores não é permitida na linguagem.
Quando uma exceção é lançada, ela sempre deve ser capturada. O trabalho de captura da exceção é executado pelo bloco catch.
Um bloco try pode possuir vários blocos de catch, dependendo do número de exceções que podem ser lançadas por uma classe ou método.
(II)Correto - A vantagem principal das interfaces é que não há limites de quantas interfaces uma classe pode implementar. O que ajuda no caso de heranças múltiplas que não é possível ser feito em Java, pois uma classe apenas pode herdar as características de uma outra classe.
(III)Correto - A linguagem Java provê algumas classes básicas para formar uma base sólida para todas as demais classes, inclusive aquelas criadas pelo programador. Dentre essas classes, seguramente as mais importantes são as classes Object, Class e String.
(IV)Errado - Sobrecarga de operador seria a capacidade de se alterar a forma como um operador opera seus operandos. Isso pode ser feito em C++ por exemplo.
Em Java não existe esse recurso. Você não pode mudar o comportamento dos operadores de Java. Se for necessário, a sua classe deve então prover algum método que faça tal tarefa.
O item da questão que gerou a dúvida: II. Uma classe pode implementar mais de uma interface.
Como já citado por alguns colegas acima, numa classe Java podemos implementar várias interfaces, já na herança temos apenas a simples, uma classe só pode estender uma classe. Espero que tenha compreendido a explicação.
Apenas atualizando, interfaces antigamente não possuiam a implementação de métodos, apenas sua definição ou contrato. Como em Java só apesar de ser possível herdar/implementar múltiplas interfaces, mas herdar apenas de uma classe, logo não era possivel a herança múltipla.
Agora, as versões mais recentes do Java permitem implementar os métodos na interface. Logo com isso é sim possível fazer herança múltipla em Java.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo