有人可以简单地解释一下这条Java线吗?

时间:2014-11-25 05:26:27

标签: java

Graphics2D g2 = (Graphics2D) g;

老实说,整个g2和g概念令人困惑。有人能解释一下吗?感谢。

另外,对g和g2之间差异的解释会很好。

2 个答案:

答案 0 :(得分:4)

据推测,gGraphics个实例,Graphics2D g2 = (Graphics2D) g;正在向g的实例投射Graphics2D

这是行动Polymorphism的一个例子......

在Java 1.3 / 1.4中,新的Graphics2D API被引入到Java API中,但由于大多数绘制方法都需要Graphics,因此它们没有更新(为了向后兼容)。然而,开发人员基本上保证传递给这些绘制方法的任何系统Graphics都会获得Graphics2D上下文的实例

基本上,Graphics2DGraphics API

的扩展

有关详细信息,请查看Painting in AWT and SwingPerforming Custom Painting

答案 1 :(得分:0)

您在Graphics中投射了一个名为g的{​​{1}}个对象。

这是polymorphism的一个例子。

基本上,图形2d扩展了awt中的图形类。 图形本身是一个抽象类,因此无法创建它,它只定义了一些接口和一些功能。

也许oracle API可以帮助你:

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html