存在乎义
一、内部类能够很好的实现隐藏
通常的非内部类,是不容许有private与protected权限的,但内部类能够html
二、内部类拥有外部类全部元素的访问权限 ,private修饰也能访问。ide
三、可实现多重继承 ,让多个内部类分别继承多个其余类,使外部类能够同时获取多个其余类的属性。htm
四、能够避免修改接口而实现同一个类中两种同名方法的调用。(外部类继承,让内部类实现接口)
参考:https://www.jianshu.com/p/f0fdea957792对象
静态、非静态内部类的区别
一、声明
静态内部类中能够声明静态成员变量和静态方法;非静态内部类不能。blog
二、访问
静态内部类只能访问外部类的静态成员变量和静态方法(静态内部类不持有外部类引用);非静态内部类能够访问外部类的全部成员和方法。继承
三、建立
声明静态内部类时,不依赖于外部类对象;声明非静态内部类时,依赖于外部类对象。
//假设类A有静态内部类B和非静态内部类C,建立B和C的区别为:
A.B b=new A.B(); //静态内部类
A a=new A();
A.C c=a.new C(); //非静态内部类接口