就是Java入门第二季里面,父类创建了一个普通方法,子类重写此方法,在测试类中只创建子类对象,并调用此方法,输出的就只有子类重写的普通方法。 但是如果父类创建了一个构造方法,子类重写此构造方法,在测试类中同样只创建子类对象,并调用此方法,输出的既有子类重写的构造方法,又有父类本身的构造方法。这是为什么呢?
2 回答

天启之魂
TA贡献174条经验 获得超85个赞
构造函数是不能继承的 所以也就不存在覆盖
子类创建对象时,会运行子类的构造方法,但是在子类构造方法的第一行会默认调用父类的无参构造方法(你写不写,系统都会给你加上),除非你指定调用父类的其他构造方法,所以你在创建子类对象时,第一个运行的是子类构造方法,然后在第一行调用父类构造方法,等父类构造方法执行完后,再继续执行子类的构造方法
添加回答
举报
0/150
提交
取消