存在意义
1、内部类可以很好的实现隐藏
一般的非内部类,是不允许有private与protected权限的,但内部类可以
2、内部类拥有外部类所有元素的访问权限 ,private修饰也能访问。
3、可实现多重继承 ,让多个内部类分别继承多个其他类,使外部类可以同时获取多个其他类的属性。
4、可以避免修改接口而实现同一个类中两种同名方法的调用。(外部类继承,让内部类实现接口)
参考:https://www.jianshu.com/p/f0fdea957792
静态、非静态内部类的区别
1、声明
静态内部类中可以声明静态成员变量和静态方法;非静态内部类不能。
2、访问
静态内部类只能访问外部类的静态成员变量和静态方法(静态内部类不持有外部类引用);非静态内部类可以访问外部类的所有成员和方法。
3、创建
声明静态内部类时,不依赖于外部类对象;声明非静态内部类时,依赖于外部类对象。
//假设类A有静态内部类B和非静态内部类C,创建B和C的区别为:?
A.B b=new A.B();?//静态内部类
A a=new A();?
A.C c=a.new C(); //非静态内部类
参考:https://www.cnblogs.com/insist-bin/p/11137675.html
原文地址:https://blog.51cto.com/4397014/2436227
时间: 2024-10-12 02:15:32