黑马程序员技术交流社区

标题: System.in想不明白啊,请大神指教 [打印本页]

作者: 氕氘氚    时间: 2015-8-18 19:05
标题: System.in想不明白啊,请大神指教
inputStream 是一个abstract类,
in是成员变量,定义static final inputStream in = null;
read()是abstract方法。

在main方法中使用
InputStream is = System.in;
is.read();
为什么不报错呢?


作者: kenfans    时间: 2015-8-18 19:07
父类引用指向子类对象,名字叫什么
作者: sven556677    时间: 2015-8-18 19:55
没懂static final inputStream in = null;这句话是什么意思。
作者: sven556677    时间: 2015-8-18 19:58
抽象类(或接口) a=new 子类();
这不就是典型的多态的定义么,你这里System.in是一个InputStream的子类,重写了父类(或接口)里的方法。
作者: zhao1991    时间: 2015-8-18 20:44
这里用到了多态,也就是在程序运行到相关代码时才知道没对象所属的类,当调用重载方法时,对象所属的真正类的方法会执行,这就是in.read()没有错误的原因,System.in重写了read()方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2