gpt4 book ai didi

java - 为什么需要调用父类(super class)构造函数?

转载 作者:行者123 更新时间:2023-12-01 17:19:18 25 4
gpt4 key购买 nike

我目前正在学习Java中的继承,并且在理解它时遇到了很大的困难,但是我无法理解的主要事情之一是为什么有必要在下面的示例中调用父类(super class)构造函数以及它是如何调用的帮助?此示例直接来自 Oracle 的教程 super(...)方法。

public MountainBike(int startHeight, 
int startCadence,
int startSpeed,
int startGear) {
super(startCadence, startSpeed, startGear);
seatHeight = startHeight;
}

我最初的想法是super(startCadence, startSpeed, startGear);会缩短当前构造函数中参数的代码,它只会获取父类中传入的值并将其添加到子类中(如下所示):

public MountainBike(int startHeight) {
...
}

但是,我已经知道这是错误的,这再次让我想到什么是 super(startCadence, startSpeed, startGear); 的问题确实如此。我非常感谢某种形式的解释,这样像我这样的初学者就可以真正理解而不是给我定义。

最佳答案

因为 MountainBike 是(某些类)Bike 的子级,所以它应该可以在任何需要 Bike 对象的上下文中使用。如果不在子类中调用父类的构造函数,则无法保证子对象被正确初始化以充当父类的实例。

我依稀记得在Java中,如果不在子构造函数中显式调用父构造函数,则会隐式调用父构造函数(即不带参数)。在您的情况下,这还不够,因为要么没有默认构造函数,要么您确实需要将提供给子构造函数的额外参数传递给父构造函数。

关于java - 为什么需要调用父类(super class)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com