子类一定要继承父类的构造方法吗? 如果不继承光调用行不行? 为什么一个Java会给没有添加构造方法的类隐式地添加一个无参构造方法。 以下是我关于继承的一点理解:
1.Java中所有的类都是继承自Object(不要以为你写一个类没有写 extends Object 就以为你没有继承了,一定要有这个概念),Object类有个一个无参构造方法,所以我们在写一个类的时候如果没有添加构造方法,Java会默认帮我们添加上; 如果自己定义了构造方法,java则不再帮我们创建,如果此时你非得用无参构造方法怎么办?很简单:自己造一个。
以下代码会有错误:![]()
自己添加一个无参构造方法,就OK了,如下。
2、子类一定要调用父类的构造方法吗?
是的,只要是继承就必须要调用父类的构造方法,不然你怎么构造出父类?没有父类你又怎么构造你自己? 所以说也不一定说是继承吧,但起码要调用。
3、注意以上我说的是“调用”父类的构造方法,也就是说不一定要创造一个跟父类一样参数的构造方法,
看看这个例子:
这样是可以的,但一般不这么干,因为没什么意义,通常是这样的:
![]()
这样才能体现出继承的思想,对吧。
OK,就讲到这里了,虽然很基础, 但我觉得对初学者理解继承还是很有必要,经常写Java的平时也不一定注意到了,正好我今天看到了就总结以下,希望对你有帮助。