隠蔽されたフィールドへのアクセス

親は super でできるけど、その上にはいけるのだろうかと。

できるらしい。

class A {
    int a = 1;
}
class B extends A {
    String a = "B#a";
}
class C extends B {
    A a = new A();
    void hoge() {
        System.out.println(a); // C#a
        System.out.println(super.a); // B#a
        System.out.println(((B)(this)).a); // B#a
        System.out.println(((A)(this)).a); // A#a
    }
}
public final class Hoge {
    public static void main(String[] args) {
        C c = new C();
        System.out.println(c.a); // C#a
        B b = c;
        System.out.println(b.a); // B#a
        A a = c;
        System.out.println(a.a); // A#a
        
        System.out.println(((B)(c)).a); // B#a
        System.out.println(((A)(c)).a); // A#a
        
        c.hoge();
    }
}

this をキャストするとか・・・・
その発想はなかったわ。