java 静态内部类不可以继承非静态内部类理解
2017-08-30 10:57
211 查看
最近遇到一个疑惑,为啥静态内部类不可以继承非静态内部类理解呢?一查资料,都是千篇一律,都是对内部类的讲解,都不能直接找到这个疑惑的答案。请教了一些大神,最后明白了其中原委,这里做个记录,哪天又不清楚了可以用来看看。
看图:
如上图所以,要想new 非静态内部类,必须得有外部类的实例,我们都知道静态类、静态内部类、一切静态的东西都跟非静态无关系,因为虚拟机内存机制里面他们不在一个区域,
那么,直接new 静态内部类是不需要借助外部类的实例的,但是这个静态内部类继承了一个非静态内部类,那么直接new 静态内部类就相当于new 非静态内部类,很显然这么做是不合法的。
所以这样也就能理解这个疑惑了
看图:
如上图所以,要想new 非静态内部类,必须得有外部类的实例,我们都知道静态类、静态内部类、一切静态的东西都跟非静态无关系,因为虚拟机内存机制里面他们不在一个区域,
那么,直接new 静态内部类是不需要借助外部类的实例的,但是这个静态内部类继承了一个非静态内部类,那么直接new 静态内部类就相当于new 非静态内部类,很显然这么做是不合法的。
所以这样也就能理解这个疑惑了
相关文章推荐
- 理解 Java 构造函数不可以继承
- 对Java不能多继承,只能单继承,却可以实现多个接口的理解
- 理解 Java 构造函数不可以继承
- JavaSE_8系列博客——Java语言的特性(五)--接口和继承(5)--深入理解,并优化接口
- 匿名内部类是否可以继承其它类是否可以实现接口 _JAVA面试题及答案
- 对java继承的理解
- 简单理解Java中的类、对象、继承、多态等概念
- java继承理解
- 理解java的三大特性之继承
- 一个题目深入理解 java继承中构造方法的执行顺序
- java中定义一个类可以同时继承两个类
- 深入理解Java中为什么内部类可以访问外部类的成员
- Java继承理解
- java非静态内部类可以访问外部类的private实例变量
- 深入理解Java中为什么内部类可以访问外部类的成员
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- java笔记--匿名内部类和静态内部类的理解和使用
- 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量
- java 接口可以多继承
- java中继承的理解