Canvasクラスのpaint()の説明文です。
このキャンバスをペイントします。
Canvas をサブクラス化するほとんどのアプリケーションでは、
便利な操作を実行するためにこのメソッドをオーバーライドすることに
なります。キャンバスのカスタムペイントが典型的な例です。
既定の操作は単純なキャンバスのクリアです。
このメソッドをオーバーライドするアプリケーションでは、super.paint(g)
を呼び出す必要はありません。

つまり、デフォルトコンストラクタを呼ばずに勝手に実行してくれると書いてあります。
---------------------------------------------------------------------------------
paint(Graphics g){}
paint2(){
int i;}
でpaint2のiをpaint2の引数にしたい場合はどうしますか?
paint2(int i)
ですね!
つまり単なるGraphics の変数をpaint内で使うのであらかじめ宣言をしようと
決まっているだけです。たとえGraphics を使わなくてもです。