class SOFieldAccessQuestion {
static class B {
int vf;
static int sf;
B(int i) {
vf = i;
sf = i + 1;
}
}
static class C extends B {
int vf;
static int sf;
C(int i) {
super(i+20);
vf = i;
sf = i + 2;
}
}
public static void main
(String[] args
) {
// Is it Okay to create an instance of static nested class?
C c1 = new C(100);
B b1 = c1;
System.
out.
println("B.sf = " + B.
sf + ", b1.sf = " + b1.
sf); System.
out.
println("C.sf = " + C.
sf + ", c1.sf = " + c1.
sf);
System.
out.
println("b1.vf = " + b1.
vf); System.
out.
println("c1.vf = " + c1.
vf); }
}
Y2xhc3MgU09GaWVsZEFjY2Vzc1F1ZXN0aW9uIHsKCiAgICBzdGF0aWMgY2xhc3MgQiB7CiAgICAgICAgaW50IHZmOwogICAgICAgIHN0YXRpYyBpbnQgc2Y7CgogICAgICAgIEIoaW50IGkpIHsKICAgICAgICAgICAgdmYgPSBpOwogICAgICAgICAgICBzZiA9IGkgKyAxOwogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgY2xhc3MgQyBleHRlbmRzIEIgewogICAgICAgIGludCB2ZjsKICAgICAgICBzdGF0aWMgaW50IHNmOwogICAgICAgIEMoaW50IGkpIHsKICAgICAgICAgICAgc3VwZXIoaSsyMCk7CiAgICAgICAgICAgIHZmID0gaTsKICAgICAgICAgICAgc2YgPSBpICsgMjsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgICAgICAvLyBJcyBpdCBPa2F5IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBzdGF0aWMgbmVzdGVkIGNsYXNzPwoKICAgICAgICBDIGMxID0gbmV3IEMoMTAwKTsKICAgICAgICBCIGIxID0gYzE7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQi5zZiA9ICIgKyBCLnNmICsgIiwgYjEuc2YgPSAiICsgYjEuc2YpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQy5zZiA9ICIgKyBDLnNmICsgIiwgYzEuc2YgPSAiICsgYzEuc2YpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImIxLnZmID0gIiArIGIxLnZmKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImMxLnZmID0gIiArIGMxLnZmKTsKICAgIH0KCn0K