關於繼承和方法覆蓋,我有以下練習,問題是爲什麼調用父類中'initialize()'方法中的'System.out.println(f1)'與參數'0',並且需要做什麼將被稱爲參數'6'。請幫我理解它。提前致謝。Java繼承和方法重寫程序
public class Solution {
public static void main(String[] args) {
new B(6);
}
public static class A {
private int f1 = 7;
public A(int f1) {
this.f1 = f1;
initialize();
}
protected void initialize() {
System.out.println(f1);
}
}
public static class B extends A {
protected int f1 = 3;
public B(int f1) {
super(f1);
this.f1 += f1;
initialize();
}
protected void initialize() {
System.out.println(f1);
}
}
}
' initialize'沒有*任何參數...並且你不會在'B'中重寫它,因爲它是一個私有方法。目前還不清楚你的期望以及爲什麼,說實話 - 但是你有兩個同名的領域只會增加混亂。 –