クラス java.io.Reader と java.io.InputStreamReader の両方に、まったく同じ署名を持つ read メソッドがあります。
public int read(char[] charbuf, int offset, int length) throws IOException
Javaのドキュメントによると、クラス java.io.FileReaderは、上記の両方のクラスからこれらの両方の read() メソッドを継承しています。
FileReader が InputStreamReader を拡張し、Reader をさらに拡張するようになりました
(Reader <-- Inputstreamreader <-- FileReader)
read() は両方のクラスで同じ署名を持っていますが、InputStreamReader が Reader から read() をオーバーライドし、FileReader がそのオーバーライドされたメソッドを継承したのではないでしょうか?? それとも、ここに何かが欠けていますか??
また、FileReader によって継承された 2 つの read() の機能はわずかに異なります (1 つは入力を待っている間にブロックされ、もう 1 つはブロックされません)。