>>303
まず、クラスBのコンストラクタの第一引数は誰にも代入しないので捨てられる。第二引数はBクラスのインスタンス変数j(this.j)に代入される。
B::print()の中で参照してるiはクラスAのインスタンス変数で、protectedのアクセス修飾子が付いているのでAの子クラスであるBから参照できる。で、i自体は誰にも代入されないので、Javaの言語仕様上intの初期値0が入っている。