局部内部类(只能在函数或者方法内或者该作用域内。局部内部类就像方法里面的局部变量一样,
是不能有public、protected、private及static修饰符的)
对于成员内部类的使用场景最大的优点:内部类可以独立的继承一个接口的实现,所以
无论外部类是否已经继承一个接口的实现,对内部类偶读没有影响,内部类使得类的
多继承的解决方案变得完整,
当外部类和内部类有属性名或者函数名相同的时候,会发生隐藏现象,默认情况下访问的是成员内部类的属性。
如果要访问尾部类的同名成员,需要访问形式:外部类.this.属性或者方法
静态内部类只能调用外部类的静态资源,因为外部类的非静态资源需要创建外部类实例才能调用
创建静态内部类对象的一般形式为: 外部类类名.内部类类名 xxx = new 外部类类名.内部类类名()
创建成员内部类对象的一般形式为: 外部类类名.内部类类名 xxx = 外部类对象名.new 内部类类名()
匿名内部类:一般用于接口的回调函数在编写事件监听的代码时匿名内部类不但方便,而且使代码更加容易维护。
匿名内部类是唯一一种没有构造器的类。正因为其没有构造器,所以匿名内部类的使用范围非常有限,
大部分匿名内部类用于接口回调。匿名内部类在编译的时候由系统自动起名为Outer$1.class。
一般来说,匿名内部类用于集成其他类或者实现接口,并不需要增加额外的方法,只是对集成方法的实现或是重写。