匿名内部类
匿名内部类
就是内部类的简化写法
前提:存在一个类或者一个接口
这里的类可以是具体类也可以是 抽象类
格式:
new 类名或接口名(){
重写方法;
};
本质:new 是在内存中分配内存,其本质不是类而是一个对象,
该类或者该抽象类的子类或者该接口的实现类的对象。因为只有子类才会去重写方法,而且该对象是一个继承了该类或者实现了该接口的子类匿名对象
匿名类中方法的实现方式
1 new 类名或者接口名(){
重写方法;
}.方法名
2 多个方法的调用方式
父类名 对象名=new 类名或者接口名(){
重写方法1;
重写方法2;
…
};
对象名.方法名();
对象名.方法名2();
…
匿名内部类在开发中的作用;
首先回顾方法的形式参数是引用类型的情况,重点是接口的情况
这里需要一个子类对象,而匿名对象类就是一个子类匿名对象,所以使用匿名内部类改进以前的做法。
Outer.method();
//说明method 是静态方法,
//并且 method 方法有返回值是 接口的实现类的对象