使用内部类的一个特别明显的优点: 可以独立的继承一个父类(接口),外围类的继承与否对内部类的继承无影响。
think in java 中这样描述:
1、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
2、在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。
3、创建内部类对象的时刻并不依赖于外围类对象的创建。
4、内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。
5、内部类提供了更好的封装,除了该外围类,其他类都不能访问。
内部类的基础:
内部类可以随便使用外部类的成员,即使外部类中的成员是private。
当使用内部类中成员或者对象时,要用外部类.内部类成员 或者外部类.new 内部类对象。
同时如果我们需要生成一个队外部类的引用,可以使用外部类.this,当然这点是产生在编译器,没有任何的运行时成本。
内部类其中有成员内部类 局部内部类 匿名内部类。