在Java中,如果子類和父類擁有相同的變量名,那么子類的變量將會(huì)覆蓋父類的變量。
public class Father { public int variable = 1; } public class Son extends Father { public int variable = 2; public void print() { System.out.println(variable); // 輸出2 System.out.println(super.variable); // 輸出1 } }
在上面的代碼中,子類Son繼承自父類Father,并且重載了變量variable。如果在子類的print()方法中引用variable變量,那么輸出的結(jié)果將會(huì)是2,因?yàn)樽宇惖淖兞恳呀?jīng)覆蓋了父類的變量。
如果需要引用父類的變量,可以使用關(guān)鍵字super。
System.out.println(super.variable); // 輸出1
使用super關(guān)鍵字將會(huì)引用父類的變量,而不是子類的變量。
當(dāng)然,在實(shí)際開發(fā)中,避免重復(fù)的變量名將會(huì)更加健壯和清晰。