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

关于InputStream.read()方法的疑问
InputStream.read()方法为抽象方法,并没有实现,为什么在System.in中可以使用呢??

------解决方案--------------------
把具体子类对象的引用转型为父类的引用类型,用父类的引用调用其方法,这就是多态。
------解决方案--------------------
这是因为System中的in引用真真的对象可能是InputStream的相关子类
------解决方案--------------------
in的具体类型是InputStream类的子类,它实现了read(),java调用方法时是从下往上查找的,因此会先找到有具体实现的read方法。