最近遇到一个疑惑,为啥静态内部类不可以继承非静态内部类理解呢?一查资料,都是千篇一律,都是对内部类的讲解,都不能直接找到这个疑惑的答案。请教了一些大神,最后明白了其中原委,这里做个记录,哪天又不清楚了可以用来看看。


看图:



如上图所以,要想new 非静态内部类,必须得有外部类的实例,我们都知道静态类、静态内部类、一切静态的东西都跟非静态无关系,因为虚拟机内存机制里面他们不在一个区域,

那么,直接new 静态内部类是不需要借助外部类的实例的,但是这个静态内部类继承了一个非静态内部类,那么直接new 静态内部类就相当于new 非静态内部类,很显然这么做是不合法的。

所以这样也就能理解这个疑惑了大笑

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐