我已經研究了一些關於此主題的相關文章,並且我已經瞭解到,當我們在子類中創建相同名稱的變量時,稱爲隱藏。給定數據類型效果如何覆蓋成員變量
class A { int i = 10; public void printValue() { System.out.print("Value-A"); System.out.println(i); } } class B extends A { int i = 12; public void printValue() { System.out.print("Value-B"); System.out.println(i); } } public class Test { public static void main(String args[]) { A a = new B(); a.printValue(); System.out.print(a.i); } }
當我實例與類型A和打印部件數據 甲一個新= B級B(); System.out.println(a.i) 輸出是10.(父類成員數據的值)。
但是當我將B類實例化爲B類時, B a = new B(); System.out.println(a.i)是12.(父類成員數據的值)
我想知道它們是如何不同的。
非常接近的問題https://stackoverflow.com/questions/15513467/polymorphism-with-instance-variables – agurylev