内部类
成员内部类
一个文件中可以定义两个类,其中一个类可以定义在另一个类的外部,也可以定义在内部。
内部类分为:成员内部类和局部内部类;
特点:
1、外部类中修饰为private的变量和方法,在内部类中可以随意使用;
2、在外部类和非静态方法之外实例化内部类,需要使用外部类.内部类的形式指定该对象。
3、在主方法内,内部类对象依赖于外部类对象,没有外部类对象,不会产生内部类对象。
4、非内部类不能被声明为private和protected;
内部类向上转型为接口
这样做的目的:
将内部类向上转型为接口;
在接口中定义行为;
定义多个内部类实现该接口,多次实现接口中的同一方法;
而在一般类中是做不到的。
使用this关键字获取外部类和内部类的引用
如果内部类和外部类中的变量重名,使用this关键字;
局部内部类
内部类定义在类的方法和任意的作用域中,称作局部内部类。
特点:
1、局部内部类并非是外部类的一部分,而是方法或作用域的一部分;
2、外部类不能方位内部类成员,内部类可以访问外部类成员;
匿名内部类
声明方式:
Return new A()
{
内部类体
}
静态内部类
特点:
1、创建静态内部类对象不需要外部类对象;
2、静态类内部不能方位外部类的非静态成员;
内部类的继承
内部类也可以被继承,方式:extends 外部类.内部类;