函数原型: public abstract boolean drawImage(Image img, int x, int y,
      int width, int height, 
      ImageObserver observer);public static BufferedImage convert(Image image,int scale){
int width=image.getWidth(null),height=image.getHeight(null);
  BufferedImage bufimg=new BufferedImage(width/scale,height/scale,
BufferedImage.TYPE_INT_RGB);
bufimg.getGraphics().drawImage(image,0,0,width,height,null);  //为什么可以被调用。。
return bufimg;
}

解决方案 »

  1.   

    bufimg.getGraphics()得到的是个实例
      

  2.   

    这个实例是Graphics2D的对象,
    但Graphics2D这个类本身并没有实现drawImage这个方法
      

  3.   

    bufimg.getGraphics() 返回的对象一定实现了drawImage方法你再仔细看看。
      

  4.   


    错误,这个实例并不是Graphics2D这个类的实例,而是Graphics2D的一个子类的的实例,这个子类肯定已经实现了所有的抽象方法,否则你不可能new出一个还有抽象方法未实现的类实例的
      

  5.   

    这个子类能在API帮助里找到吗?
      

  6.   

    未必,有些只是内部实现(非public的),返回引用的。
    多了解一下多态即可。
      

  7.   

    System.out.println(bufimg.getGraphics().getClass());
    看看实际的类型,其实没有必要理会其具体实现类型。