内部类可以使用public default protected private以及static修饰 而外部顶级类 只能使用public和default修饰
内部类的作用:
1. 内部类提供了更好的封装 只能让外部类直接访问 不允许同一个包中的其他类直接访问
2. 内部类可以直接访问外部类的私有属性 内部类被当成其外部类的成员 但外部类不能访问内部类的内部属性
3. 接口只是解决了多重继承的部分问题 而内部类使得多重继承的解决方案变得更加完整
内部类的使用场合:
1. 由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,在只为外部类提供服务的情况下可以优先考虑使用内部类。
2. 使用内部类间接实现多继承:每个内部类都能独立地继承一个类或者实现某些接口,所以无论外部类是否已经继承了某个类或者实现了某些接口,对于内部类没有任何影响。
内部类的分类
再java中内部类只要分为成员内部类(非静态内部类, 静态内部类),匿名内部类 局部内部类
成员内部类(可以使用 private, default, protected, public 任意进行修饰 类文件:外部类$内部类.class)