各位兄弟, 小弟是JAVA新手,有一个问题 请教大家
我用 socket连接上服务器以后,InputStream sin=socket.getInputStream();
sin.read()我查了一下,InputStream 是一个抽象类,而read是抽象方法,也就是说必须由InputStream 的子类来实现read()方法。
InputStream sin=socket.getInputStream() 返回的是一个InputStream 方法,为什么可以直接使用 它的read()方法呢? JAVA在运行的时候 怎么知道 用InputStream 的哪一个子类的read()方法呢?
我用 socket连接上服务器以后,InputStream sin=socket.getInputStream();
sin.read()我查了一下,InputStream 是一个抽象类,而read是抽象方法,也就是说必须由InputStream 的子类来实现read()方法。
InputStream sin=socket.getInputStream() 返回的是一个InputStream 方法,为什么可以直接使用 它的read()方法呢? JAVA在运行的时候 怎么知道 用InputStream 的哪一个子类的read()方法呢?
解决方案 »
- 突然间学JAVA很迷茫就高手帮忙,急啊!
- 用org.commons.net.ftp包上传功能问题
- 不用new在测试类里面父类能调用子类
- 关于final 关键字的一个疑问
- 一个for循环就打印出棱形之C教育版.
- 急求达人!在JAVA应用程序中能不能调用VBS写的代码段,比如我要用我点一个按钮 触发一段打印一个EXCEL表格的VBS代码 ,在线等达人回复!
- 怎么改成一个画板?菜鸟拜谢!!急急
- JTable中如何给某个cell设置背景色,注意不是某列?
- 有谁知道Borland AppServer 4.5的key
- 在JAVA的APPLET中如何访问SYBASE数据库,并从数据库取出数据,请写详细代码,给分30
- 哪里有JAVA测试工具JTest 3.2的下载??
- 请教:环境变量问题
==============================
返回的是一个具体子类的实例
一言难尽阿赫赫 建议多了解一下面向对象的思想。
别个楼主最后一句你没看懂啊,我真怀疑你的阅读能力 InputStrema那么多子类,你怎么知道它到底接受的是哪个子类答案我也不知道
socket.getInputStream()返回的是SocketInputStream
翻jdk源码找到的。
* This stream extends FileInputStream to implement a
* SocketInputStream. Note that this class should <b>NOT</b> be
* public.
*
* @version 1.35, 11/17/05
* @author Jonathan Payne
* @author Arthur van Hoff
*/
class SocketInputStream extends FileInputStream