我是否混淆了 Java 和 JavaScript (ECMA-262)?

Am I getting Java and JavaScript (ECMA-262) mixed up?

我是 Java 和 JavaScript 的新手。在学习一些 Java 教程时,我谈到了关于铸造的部分:

public void paint (Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    ...
}

是组件方法 paintGraphics 对象 g 投射到 Object class {} 上还是我有这个想法与 Java函数是对象的脚本混淆?

function Graphics() {this.type = 'graphics object'};
var g = new Graphics();
g.type;
//"graphics object"
Graphics.prototype.g2d = 'g2d object';
g.type;
//"graphics object"
g.g2d;
//"g2d object"

调用paint(g)时,是在{}上添加Graphics属性,然后在Graphics上添加Graphics2D属性吗?

编辑:来自 Java Tutorials

To employ Java 2D API features in the application, cast the Graphics object passed into a component’s rendering method to a Graphics2D object.

什么时候说将 Graphics 转换为 Graphics2Dg 通过添加额外属性进行更改,然后将其称为 g2?

我不确定你指的是什么 JavaScript 但第一个代码段是将 Graphics 对象转换为 Graphics2D 对象。

对象没有改变。 Java,不像 Java脚本是强类型的。所以 g 一直是一个 Graphics2D 对象。转换只是让编译器知道它是一个。

此外,您不能向 Java 中的函数添加属性。