为什么子类不继承构造函数?

时间:2020-10-07 16:47:03

标签: inheritance constructor

我是Java的新手,我们正在学习有关继承和子类的知识。在文本和在线中,据说子类并不从其各自的超类继承构造函数;而是从子类继承构造函数。但是在一个测验问题中,我们被要求输出以下代码;

class Food {
    Food() { printFlavor(); }
    void printFlavor() { System.out.println("bland"); }
}
class Pepper extends Food {
    void printFlavor() { System.out.println("spicy"); }
}
public class Lunch {
    public static void main(String[] args) {
        Food lunch = new Pepper();
    }
}

我假设由于没有继承构造函数,因此输出应该为空;因为编译器将使用Pepper的默认构造函数;但是,这是不正确的。我是否缺少明显的东西?我自己运行它,我可以看到它使用了Food的构造函数,因为它调用了printFlavor子例程,但是我不明白为什么子类不继承构造函数。

0 个答案:

没有答案