日期:2014-05-20  浏览次数:20691 次

system.in.read()?????

InputSteam是所有字节流类的基类,其中有一个读取方法

public     abstract   int   read()  

该抽象方法应该是没有实现的,那也就是说不能直接使用。

我们可以通过System.in.read()读取一个字符

这个如何解释呢

------解决方案--------------------
他的in虽然看起来类型是InputStream,但是实际上获取的是一个InputStream子类的实例,然后上溯造型成了InputStream
------解决方案--------------------
关注
------解决方案--------------------
不会吧
------解决方案--------------------
InputStream里的read方法是抽象的吗?这是java API对它的描述,你再好好看看:

public int read()
throws IOException从类 InputStream 复制的描述
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
子类必须提供此方法的一个实现。


指定者:
类 InputStream 中的 read

------解决方案--------------------
去看源代码