class Main { public static void main(String[] args) { b bb = new b(); } } class a{ // a(){ 注释我会报错 // System.out.println("a"); // } a(int a){ System.out.println(a); } } class b extends a{ }
其实意思就是, 你如果你的类有继承,你父类如果有有参的构造,那么也一定要有空构造,因为:
如果你什么都不写JVM也会给你一个空构造,但你如果自己写了有参的构造,那么JVM就不理你了,不给你生成空构造,那么:
就没有空构造了,继承永远都会调用空构造的,所以你如果父类没空构造就报错。
就写那么多,希望帮得到大家!
原理都懂 懒得写 摘抄CSDN - jdkorg:
1.如果其中一级只有有参,没有无参,会发生错误。但只有无参,没有有参一定不会出错。
2.在以后的Java开发中,若一个POJO类要有带参构造方法,要记得先写无参构造方法。防止类追溯时找不到上级,报错。