P416 匿名内部类本质
IA tiger = new IA(){//IA是一个接口
//重写
System.out.println(“老虎叫唤。。。”);
}
P417 匿名内部类使用
基于类的匿名内部类
Father father = new father(“jack”){};//不带大括号运行类型是Father,带大括号就是匿名内部类,相当于是匿名内部类继承了Father类
//这个jack是到Father的构造器里面去了
接口的匿名内部类和类的匿名内部类都需要像实现和继承一样满足那些要求。基于抽象类的匿名内部类必须要是实现抽象方法,和继承抽象类一样
匿名内部类实例化一次就没有了,但是实例化的对象可以一直用
匿名内部类这里面的代码都是在outer04.method();这个方法写的,最后就是在主方法里outer04.method();实现了所有的
P418 匿名内部类细节
和前面局部内部类一样
P419 匿名内部类实践
将匿名内部类当作实参传递,代码见innter01.java
代码见innter02.java
P420 成员内部类
定义在外部的成员位置上,使用限制和成员一样,如果要使用成员内部类的方法,可以在外部类的方法中new有关成员内部类的对象,然后在里面实现方法
代码见inner03.java
P420 成员内部类2
第5点,Java规定,这样也可以访问成员内部类的私有成员
第6点,使用方法:
方式1相当于将成员内部类看成有关属性,但是属性的用法是类的用法,通过new出一个对象然后调用来实现