这就是JAVA,这就是抽象类,讲原理大多是讲不清楚了。
我记得paint这个方法应该是Graphics这个抽象类的特有方法吧!这应该是个做动画,画图的抽像类,你去查查JAVA中抽象类是怎么样个概论。之后就不难理解g.drawString("Hello!",10,10)可以
工作了。

解决方案 »

  1.   

    这儿的Graphics仅仅表示类型,在运行的时候g不是Graphics直接对象,就好像java.util.List list = new ArrayList()一样,List是一个接口,接口为什么能用来声明引用就是这个原因
      

  2.   

    paint(Graphics g) 虽然接受的是Graphics实例
    但我们实际上可能传给他g 的实现类(他的子类),子类有很多,
    java 会判断具体的是哪个子类,然后调用子类的drawString这就是上塑造型
      

  3.   

    paint(Graphics g) 虽然接受的是Graphics实例
    但我们实际上可能传给他g 的实现类(他的子类),子类有很多,
    java 会判断具体的是哪个子类,然后调用子类的drawString
      

  4.   

    这当然说不清就,就像 tc 中用printf()一样,你只要知道就行了。不用知道内部代码啊。
      

  5.   

    我想你的疑惑是不知道他是怎么工作的吧?其实这一切都已经隐藏在幕后了,很多时候当你绘图时,并不是你直接调用pain的(除非你自己继承实现的),而是系统在幕后工作调用的,那些Graphics的具体实例也是系统自动生成的。如果你想知道具体情况,就需要看jfc的书籍和源代码了。