一.java内部类的种类与区别:
Java中的内部类总共有以下3种类型:
1.普通内部类
2.静态内部类
3.匿名内部类
其中,普通内部类与其外部类是绑定在一起的,内部类作为外部类的组成部分,可以享用外部类的所有资源,但是不能只创建普通内部类而没有外部类;静态内部类和普通类其实没有什么很大区别,不过是命名空间有所变化;匿名内部类顾名思义就是没有类名字,需要继承某个父类或接口,由于匿名的特性使该类只可以被实例化一次。
二.使用场景
内部类可以减少字节码文件的体积;内部类可以直接使用外部类的资源,包括私有成员,可以减少代码量;内部类可以用来实现多重继承,也可以达到隐藏具体实现的目的;如果要继承的父类和实现的接口有方法冲突,也可通过内部类实现接口解决问题;匿名内部类可以简化代码。