- 如果想从外部类的非静态方法之外的任意位置创建某个内部类对象,那么必须具体的指明这个对象的类型
- 内部类自动拥有对外围类所有成员的访问权
1)在内部类是非static时,内部类的对象只能在与外围类相关联的情况下才能被创建,次内部类对象必定会秘密的捕获一个指向那个外围类对象的引用,然后在访问外围类的成员时,就是用那个引用来选择外围类的成员。
2)所以,在没有创建外部类对象之前,是无法获得内部类对象的 - 外部类可以访问内部类的private元素
- 在方法和作用域内放的内部类,并不是作用域之外,该对象就不可用了,其实这个内部类在一开始编译的时候就已经和其他类一样一起编译过了,在方法区里已经有其信息的存在了,只是超出这个作用域,这个内部类时不可用的。
5. 内部类不可以被覆盖
(static)嵌套类与内部类的区别
1、嵌套类内部类对象与外围类对象之间没有联系
2、要创建嵌套类不需要外围类的对象
3、不能从嵌套类中访问非静态的外围类对象
为什么要使用内部类?
1、一般来说,内部类继承一个类或者实现一个接口,内部类提供了某种进入外围类的窗口
2、每个内部类都可以实现或者继承一个接口(类),无论外围类是否已经继承了某类类或接口,对于内部类都没有影响
3、有效的实现了多重继承