我剛開始學習Java,所以如果答案有些明顯,請耐心等待。我做了一些研究,但無濟於事。隱藏屬性的Java字段
據我瞭解,屬性未覆蓋,但只有場隱藏。要確定是否使用超類或子類中的屬性,Java將檢查引用的類型。
那我就不在這裏忍受的輸出:
public class Super {
String str = "I'm super!\n";
public String toString() {
return str;
}
}
public class Sub extends Super {
String str = "I'm sub.\n";
}
public class TestFH {
public static void main(String[] args) {
Sub s1 = new Sub();
System.out.printf(s1.toString());
}
}
它給我:
I'm super!
我知道我可以實現我通過方法重載要容易。我只是對發生的事情感到好奇。
在此先感謝。
你期望你的輸出是什麼? –
@RohitJain我期待「我是子」,因爲我從子類引用(這是s1)調用方法。 – Boyang