Java基础(10) - 内部类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础(10) - 内部类相关的知识,希望对你有一定的参考价值。

存在意义
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

以上是关于Java基础(10) - 内部类的主要内容,如果未能解决你的问题,请参考以下文章

Java基础10---包内部类匿名内部类

Java基础10---包内部类匿名内部类

Java基础-内部类

2.24 Java基础总结 ①内部类基础

Java基础——内部类

Java基础(内部类和静态内部类)