这是我实现的用于检查继承者行为的代码
超一流
class Vehicle {
public Vehicle(int x) {
System.err.println("super param " +x);
}
public Vehicle() {
System.err.println("super defult");
}
}
子类
class Bus extends Vehicle {
public Bus(int y) {
super(y);
System.out.println("Sub param");
}
public Bus() {
super(11);
System.out.println("Sub Class defult");
}
}
主类是
public class TestClass {
public static void main(String[] args) {
new Bus();
}
}
三个不同的结果如下所示
result 1
result 2
result 3
**这里发生了什么?输出的顺序与我们预期的不同**
最佳答案
在您的父类(super class)中,您打印到 System.err,但在子类中,您打印到 System.out,因此您的问题与继承无关,而是与打印的工作原理有关。
关于Java 构造函数通过 super() 关键字调用会产生冲突结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50771980/