子类是否总是使用超类的默认构造函数?

时间:2017-08-20 10:40:51

标签: java inheritance constructor

为什么子类不能只使用自己的默认构造函数?当Bike扩展Vehicle类时,为什么Bike使用Vehicle的构造函数来创建自行车对象?

当一个自行车对象拥有一些在父类中不存在的额外成员然后使用超类来减少编写额外的重复代码以进行初始化时,使用父类的构造函数似乎没问题。它看起来没问题。(我可能完全错了)。

public class Vehicle {

    Vehicle()
    {

        System.out.println("Vehicle is created");

    }
}

public class Bike extends Vehicle {

    public static void main(String[] args){

        Bike HondaBike = new Bike();    
    }
}

Output: Vehicle is created

1 个答案:

答案 0 :(得分:1)

new Bike()调用类Bike的无参数构造函数,该构造函数调用其超类Vehicle的无参数构造函数,但由于您没有编写参数类Bike的非构造函数,编译器生成一个空体。因此,您似乎只会执行Vehicle的构造函数。

相关问题