多层嵌套的内部类,无论外边包了多少层,最内部的类能够访问所有的外部类的属性和方法:
package innerclass;
public class Outer{
class Inner1{
void test1(){System.out.println("test1");}
class Inner2{
void test2(){System.out.println("test2");}
class Inner3{
void test1(){System.out.println("test3");}
class Inner4{
void callAll(){
//外层class中有重名函数
Outer.Inner1.this.test1();
Outer.Inner1.Inner2.Inner3.this.test1();
//直接调用,会调用里这里最近的,也就是Inner3中test1
test1();
//外层的class中没有重名函数
test2();
}
}
}
}
}
public static void main(String[] args){
Outer o = new Outer();
Outer.Inner1.Inner2.Inner3.Inner4 inner = o.new Inner1().new Inner2().new Inner3().new Inner4();
inner.callAll();
}
}