内部类的隐藏功能:内部类相当于一个局部作用域,其他方法无法访问内部类如:
如上代码中Main方法里的XiaoMing无法直接使用
内部类的使用:由于内部类中的声明不属于任何方法,因此可以被任何非静态方法所调用,调用方法是new该内部类,例如:
内部类只能在定义内部类的类中使用,如果想使用内部类中的变量,需要先访问定义该内部类的类之后再访问该变量,内部类属于对象层次,main方法属于类的层次,因此main中new内部类无法访问
main中使用内部类的方法:
内部类多继承的例子:
局部内部类:定义在代码块、方法体内,使用也在代码块、方法体内,出了这个作用域就是去作用,且无法被public、private、protected、static等修饰,例子:
匿名内部类就是局部内部类,只不过是局部内部类的一种特殊形式,其作用就是为了实现方法,实现之后直接调用即可
例子1:
使用例子2:
分析例子:
其中之所以p无法调用eat方法,是因为p的身份与指向是Person,父类无法调用子类方法
外部类可以通过完整类名直接访问静态内部类的静态成员