Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pq o Reader não possui o método readLine?

Ola! Se o BufferedReader também é um Reader, achava que o Reader iria possuir todos os métodos do BufferedReader. Existe alguma logica pra saber entao qual metodos a classe 'mae' nao possui que a filha possui? Obg!

1 resposta
solução!

Oi Andre, tudo bem?

Nesse caso, Reader é a classe mãe e BufferedReader é uma subclasse de Reader. E a melhor forma para descobrir quais métodos são exclusivos de uma classe que herdou de outra é através da própria documentação Java.

Vou deixar aqui a documentação da classe Reader e da subclasse BufferedReader. Dando uma olhada na documentação da BufferedReader, na seção "Method Sumary", embaixo de onde são descritos os métodos que a classe possui, podemos ver quais métodos foram herdados do Reader (Methods inherited from class java.io.Reader). Aqui, podemos ver que ele herdou apenas dois métodos, e ambos são duas versões diferentes do método read() - ou seja, temos um caso de sobrecarga, onde sua função varia dependendo dos parâmetros recebidos.

Imgur

Mas é aí que temos que ter muito cuidado! O BufferedReader herda do Reader, portanto, embora seja mostrado que apenas dois métodos foram herdados, esse não é bem o caso. Se observarmos mais adiante na documentação de BufferedReader, veremos os detalhes da implementação de cada método e é aqui que encontramos nossa resposta. Todos os métodos que foram herdados, com exceção das duas versões de read() que vimos antes, foram sobrescritos na subclasse, deixando apenas dois métodos que não foram herdados: readLine() e lines(). O que mostra que apenas essas duas classes são "exclusivas" de BufferedReader.

Imgur

Estendi um pouco a explicação, mas espero ter ajudado. Qualquer dúvida é só avisar!

Bons estudos!!