Да, вы должны включить g
.
Когда вы вводите свой метод рисования, у вас есть объект g
типа Graphics
.
Затем вы присваиваете свой объект Graphics
, g
типу Graphics2D
, который является типом, который расширяет Graphics
.
Вы должны включить g
, чтобы у вас было что-то типа. Если вы не включаете объект, вы получите ошибку компиляции, потому что оператор не является полным.
Причина, по которой вы приписываете g
объекту Graphics2D
, заключается в том, что вы сообщаете компилятору: «Этот графический объект на самом деле является объектом Graphics2D». таким образом, вы можете выполнять функции, которые объект Graphics2D
имеет, что объект Graphics
не делает.
Этот ответ stackoverflow answer очень хорошо объясняет отличные переменные в Java, если у вас есть больше вопросов об этом. И этот ответ stackoverflow answer объясняет, почему безопасно передавать из Graphics
в Graphics2D