java中匿名内部类的特点是:1、 匿名内部类使用单独的块表示初始化块{};2、 匿名内部类想要使用方法或域中的变量,该变量必须是final修饰的,JDK1.8之后effectively final也可以;3.、匿名内部类默认包含了外部类对象的引用;4、匿名内部类表示继承所依赖的类。
一、内部类是什么
内部类的定义为:定义在另一个类或方法中的类。而根据使用场景的不同,内部类还可以分为四种:成员内部类,局部内部类,匿名内部类和静态内部类。每一种的特性和注意事项都不同。
二、匿名内部类
匿名内部类是与继承合并在一起的没有名字的内部类。
public class Outer{
public List list=new ArrayList(){
{
add("test");
}
};
}
这是我们平时最常用的语法。
匿名内部类的特点如下:
1、匿名内部类使用单独的块表示初始化块{}
2、匿名内部类想要使用方法或域中的变量,该变量必须是final修饰的,JDK1.8之后effectively final也可以
3、匿名内部类默认包含了外部类对象的引用
4、匿名内部类表示继承所依赖的类
延伸阅读
为什么要有内部类
1. 完善多重继承
- 在早期C++作为面向对象编程语言的时候,最难处理的也就是多重继承,多重继承对于代码耦合度,代码使用人员的理解来说,并不怎么友好,并且还要比较出名的死亡菱形的多重继承问题。因此Java并不支持多继承。
- 后来,Java设计者发现,没有多继承,一些代码友好的设计与编程问题变得十分难以解决。于是便产生了内部类。内部类具有:隐式包含外部类对象并且能够与之通信的特点,完美的解决了多重继承的问题。
2. 解决多次实现/继承问题
- 有时候在一个类中,需要多次通过不同的方式实现同一个接口,如果没有内部类,必须多次定义不同数量的类,但是使用内部类可以很好的解决这个问题,每个内部类都可以实现同一个接口,即实现了代码的封装,又实现了同一接口不同的实现。
- 内部类可以将组合的实现封装在内部中。
文章标题:java中匿名内部类的特点是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37514