内部类主要分为四种类型,分别是成员内部类、局部内部类、匿名内部类和静态内部类,以下是具体介绍:
成员内部类:定义在外部类的成员位置(与成员变量、方法同级),可以访问外部类的所有成员(包括私有成员)。
局部内部类:定义在方法或代码块内部,作用域仅限于所在方法或代码块。
特点:不能使用访问修饰符(public、private等),可访问外部类成员和所在方法的局部变量(JDK8前需用final修饰,之后隐式final)。匿名内部类:没有类名,直接在使用时定义的内部类,通常用于创建接口或抽象类的实例。
特点:只能使用一次,不能定义构造方法,可直接重写接口/抽象类的方法。
静态内部类
使用 static 修饰,属于外部类本身,不依赖外部类实例。
特点:只能访问外部类的静态成员,创建时无需外部类对象