内部类,匿名内部类,静态内部类,匿名类有何区别
内部类:
是一个编译式的概念,一旦编译成功,就会成为完全不同的两个类,分别为 outer.class 和outer$inner.class 类。所以内部类的成员变量/方法名可以和外部类的相同。 匿名内部类:为了免去给内部类命名,或者只想使用一次,就可以选择使用匿名内部类。只 不过呢,没有类名,也就不能 new 出对象了,也就是说,我本来就不打算之后还用它。
静态内部类:
除了访问权限修饰符比外围类多以外, 和外围类没有区别, 只是代码上将静态 内部类组织在了外部类里面,但是注意静态内部类是不能访问外部类非静态变量及方法的。
匿名类:
匿名类相当于在定义类的同时再新建这个类的实例。