文章目录
- 知识学习
- 实现案例
- 第一步、父类定义方法
- 第二步、子类中定义匿名内部类
- 第三步、执行方法
最近在复习Java知识点的时候,在看匿名内部类,记录下来,方便备查。
知识学习
匿名内部类,即一种特殊的局部内部类,不需要为其声明名字,有默认的隐藏名字,如==外部类名$
特点
本质就是一个子类,会立即创建一个子类对象。
实现案例
第一步、父类定义方法
在 Animal 类中,定义 cry方法,如下所示。
public abstract class Animal {
public abstract void cry();
}
第二步、子类中定义匿名内部类
在子类中,new 类/接口,定义匿名内部类属性,便可直接得到子类对象,格式如下所示。
new 类/接口(参数值....){
类体(方法重写);
};
编译看左边,运行看右边
public class InnerClass {
public static void main(String[] args){
Animal a = new Animal(){
@Override
public void cry(){
System.out.println("匿名内部类打印输出");
}
};
a.cry();
}
}
第三步、执行方法
执行匿名内部类,打印日志,在控制台查看打印结果。
在编译出来的class文件中,会有生成的匿名内部类,名称如子类$序号.class。
打开class查看内容,如下所示。