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

一个简单的类加载问题。
Java code
InputStream in=ConfigManager.class.getClassLoader().getResourceAsStream(configFile);

问题: 我不大能理解这句代码的意思,麻烦帮我解释下
  为什么不能直接 class.getResourceAsStream
  ClossLoader是个抽象类,方法没有实现,为什么可以直接调用方法呢
 

------解决方案--------------------
Class类中没有getResourceAsStream方法。
ClossLoader是个抽象类,但实际返回的是ClossLoader类的实现类的实例,是由jvm初始化的,
System.out.println(ConfigManager.class.getClassLoader().getClass().getName());就可以看到jvm具体用到了那个ClossLoader。可以直接调用方法,因为多态。