Java는 그러한 정규화를 허용하지만 그러한 액세스는 상속과 재정의가 미묘하게 혼동되고 있음을 나타낼 수 있습니다.
예:
class Super {
static class Inner {}
}
class Sub extends Super {
void test() {
Sub.Inner s = new Sub.Inner(); // 'Inner' 클래스가 'Super' 클래스에서 선언되었으나 'Sub' 클래스를 통해 참조됩니다
}
}
빠른 수정을 적용한 후:
class Super {
static class Inner {}
}
class Sub extends Super {
void test() {
Super.Inner s = new Super.Inner();
}
}