java.awt.Graphics:是否调用抽象方法?

java.awt.Graphics:是否调用抽象方法?,java,swing,awt,Java,Swing,Awt,java中的抽象方法,如java.awt.Graphics类中的clearRect,getColor,不应该有任何方法体。那么,为什么可以在类javax.swing.JPanel的paint(Graphics g)方法中调用它们呢?当我没有怀疑Graphics是一个抽象类时,我发现paint方法在JPanel类的构造函数中被调用,大致如下: this.setGraphics(new Graphics()); paint(this.getGraphics()); 但事实证明,setGraphic

java中的抽象方法,如
java.awt.Graphics
类中的
clearRect
getColor
,不应该有任何方法体。那么,为什么可以在类
javax.swing.JPanel
paint(Graphics g)
方法中调用它们呢?当我没有怀疑
Graphics
是一个抽象类时,我发现
paint
方法在
JPanel
类的构造函数中被调用,大致如下:

this.setGraphics(new Graphics());
paint(this.getGraphics());
但事实证明,
setGraphics
在类
JPanel
中是不存在的方法,但是
getGraphics
存在。但是,即使是
Graphics
组件是如何为
JPanel
设置的呢


至于主要问题,是否有一个非抽象类扩展了
Graphics
,其实例将作为
paint
方法的参数?然后他们可以将其定义为
图形
数据类型,同时仍然填充抽象方法细节,对吗?

是的<代码>SunGraphics2D。是<代码>太阳镜2d。