Conecte-se com especialistas e obtenha respostas no IDNLearner.com. Descubra respostas completas para suas perguntas graças à vasta experiência de nossa comunidade de especialistas em diversas áreas do conhecimento.

A herança é uma das principais caraterísticas da orientação a objetos. Veja o código a seguir.

Arquivo Fungo.java:

public class Fungo extends SerVivo {

}

Arquivo Principal.java:

public class Principal {
public static void main(String[] args) {
Fungo fg = new Fungo();
fg.exibeDados();
}
}

Considerando o texto e o código anterior, avalie as afirmações a seguir.

I – A linha "fg.exibeDados();" na classe principal acarretará em erro, pois é um método não declarado.
II – Não dá para afirmar que dará erro na chamada do método "exibeDados()" sem conhecer a superclasse SerVivo.
III – Se a classe Fungo estiver no mesmo pacote que a classe Principal, não é necessário importar a classe Fungo na classe Principal com "import".
IV – A classe SerVivo não possui atributos ou métodos.


Sagot :

Resposta:

Vamos avaliar cada uma das afirmações com base no código fornecido e nos conceitos de orientação a objetos em Java.

**Afirmação I:**

"A linha `fg.exibeDados();` na classe Principal acarretará em erro, pois é um método não declarado."

Essa afirmação pode ou não ser correta dependendo do contexto. Se o método `exibeDados()` não está declarado na classe `Fungo` ou na sua superclasse `SerVivo`, então haverá um erro de compilação. No entanto, se `exibeDados()` estiver declarado na superclasse `SerVivo` (ou herdado de outra superclasse), não haverá erro. Como não temos a definição da classe `SerVivo`, não podemos afirmar categoricamente que haverá um erro. Portanto, a afirmação I depende do contexto e da existência do método `exibeDados()` na hierarquia de classes.

**Afirmação II:**

"Não dá para afirmar que dará erro na chamada do método `exibeDados()` sem conhecer a superclasse `SerVivo`."

Isso é correto. Sem conhecer a implementação da superclasse `SerVivo`, não podemos concluir se a chamada ao método `exibeDados()` causará um erro. O método pode estar presente na superclasse, o que tornaria a chamada válida.

**Afirmação III:**

"Se a classe Fungo estiver no mesmo pacote que a classe Principal, não é necessário importar a classe Fungo na classe Principal com `import`."

Isso é correto. Em Java, se duas classes estão no mesmo pacote, não é necessário usar a diretiva `import` para que uma classe possa utilizar a outra.

**Afirmação IV:**

"A classe SerVivo não possui atributos ou métodos."

Essa afirmação não pode ser confirmada ou refutada com base nas informações fornecidas. Não temos a definição da classe `SerVivo`, então não podemos saber se ela possui ou não atributos ou métodos. Portanto, essa afirmação é inválida sem a definição da classe `SerVivo`.

Com base nessa análise:

- A afirmação I depende do contexto e não pode ser confirmada como correta ou incorreta sem mais informações.

- A afirmação II é correta.

- A afirmação III é correta.

- A afirmação IV é inválida, pois não podemos determinar se a classe `SerVivo` possui ou não atributos ou métodos sem sua definição.

Portanto, as afirmações corretas são:

**Alternativa correta: II e III.**