Topic: java中为什么会直接使用抽象类的对象,直接调用抽象的方法 |
Print this page |
1.java中为什么会直接使用抽象类的对象,直接调用抽象的方法 | Copy to clipboard |
Posted by: forrest_gump Posted on: 2005-04-28 15:07 java书中说到抽象类是不能直接创建对象的,而抽象方法也是空方法,没有具体实现,都需要子类继承并实现它。但在java中却有很多直接使用抽象类和抽象方法的地方。如: System.in.read()这个方法来获取键盘输入,这里的System.in是一个InputStream类,API说明中它是抽象的,但为什么这里能直接使用,而且这个read()方法也是抽象的,这里也直接调用了,而且完成了所需要的功能,这是怎么一回事。哪位大虾指点一下。 |
2.Re:java中为什么会直接使用抽象类的对象,直接调用抽象的方法 [Re: forrest_gump] | Copy to clipboard |
Posted by: danzel Posted on: 2005-04-28 17:21 请找到System的源代码,然后看方法:initializeSystemClass()中的这一行: setIn0(new BufferedInputStream(fdIn)); 应该是在这里的native方法中设置的InputStream() |
3.Re:java中为什么会直接使用抽象类的对象,直接调用抽象的方法 [Re: forrest_gump] | Copy to clipboard |
Posted by: 铁针 Posted on: 2005-04-28 18:05 danzel 老大给你指了一条路,还不赶紧谢谢老大的英明?! |
4.Re:java中为什么会直接使用抽象类的对象,直接调用抽象的方法 [Re: danzel] | Copy to clipboard |
Posted by: forrest_gump Posted on: 2005-04-29 10:17 我查看过这些源代码,但还是不大明白,包括那个IO包中的read()方法,明明是申明的为abstract方法,而且是空的没有任何代码,但注释中却说明了它的功能。那这个abstract方法就不是空实现了,而是实现了某种功能的,这倒底是怎么回事呢,能不能用通俗的语言解释一下,多谢了。 |
5.Re:java中为什么会直接使用抽象类的对象,直接调用抽象的方法 [Re: forrest_gump] | Copy to clipboard |
Posted by: mesocool Posted on: 2005-04-29 15:18 because it is a static method, you don't have to initialize it before using it... |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |