我很想知道在使用super()
调用父类构造函数时,背后实际发生了什么。当从子类实例化一个对象时,子类是否继承了父类对象?或者它是如何工作的?
以下是我的参考代码:
public class Bicycle {
//Declaring bicycles states
public int movSpeed = 0;
public int cadence = 0;
public int curGear = 0;
//Class constructor
public Bicycle(){
}
//Class constructor with params
public Bicycle(int movSpeed, int cadence, int curGear) {
this.movSpeed = movSpeed;
this.cadence = cadence;
this.curGear = curGear;
}
子类:
public class mountainBike extends Bicycle {
//Declare mountainBikes states
public int frontTravel = 0;
public int rearTravel = 0;
public int gearMult = 0;
//Class constructor
public mountainBike(){
}
//Class constructor with params
public mountainBike(int movSpeed, int cadence, int curGear, int frontTravel, int rearTravel,int gearMult){
super(movSpeed,cadence,curGear);
this.frontTravel = frontTravel;
this.rearTravel = rearTravel;
this.gearMult = gearMult;
}
mountainBike
(请使用UpperCamelCase来表示类)是一个Bicycle
,调用super(args...)
告诉你正在调用特定的构造函数。如果你不带参数或者不调用super()
,则会调用默认构造函数。 - EmzfrontTravel
、rearTravel
等的值设置为0
,因为这是自动完成的。 - Emz