Skip to content

2025-06-03-118 Java-继承完+多态

主要记录的是上课(复习)出错的地方

Java
public class Father {
    public Father() {
        func();
    }

    public void func() {
        System.out.println("Father func()...");
    }

    public static void main(String[] args) {
        new Son(); // 打印什么?
    }
}

class Son extends Father {
    private int age = 1;

    @Override
    public void func() {
        System.out.println("Son func... age = " + age);
    }
}

这是不能建议使用的,仅仅用来当作课外知识记忆

打印的是 Son func... age = 0

原因

  1. 依然会动态绑定
  2. 打印的时候 父类还没有构造完毕 --> 所以 子类也就没有构造 --> int 默认为 0 --> 打印 age = 0