publicclassTest{publicstaticvoidmain(String[] args){//访问成员内部类方式一:直接创建对象(适用于未使用static修饰的)
ExternalClass.InternalClass1 inner1 =newExternalClass().newInternalClass1();
inner1.test();//访问访问成员内部类方式二:适用于使用static修饰的
ExternalClass.InternalClass2 inner2=newExternalClass.InternalClass2();
inner2.show();}}classExternalClass{//成员内部类一(未使用static修饰的)classInternalClass1{publicvoidtest(){
System.out.println("test");}}//成员内部类二(用static修饰的)staticclassInternalClass2{publicvoidshow(){
System.out.println("show");}}}
运行结果:
test
show
Process finished with exit code 0
A:匿名内部类:就是局部内部类的简化写法。
B:前提:存在一个类或者接口;这里的类可以是具体类也可以是抽象类。
C:格式:
new 类名或者接口名(){
重写方法;
} ;
D:本质:是一个继承了该类或者实现了该接口的子类匿名对象。
举例:
publicclassTest{publicstaticvoidmain(String[] args){
MyInterface1 myInterface1=newMyInterface1(){@Overridepublicvoidshow(){
System.out.println("show");}@Overridepublicvoidtest(){
System.out.println("test");}};
myInterface1.show();
myInterface1.test();}}interfaceMyInterface1{voidshow();voidtest();}
运行结果:
show
test
Process finished with exit code 0