1.為什么用子類對象去實例化接口 是 A a = new B();
原因是面向接口編程,提高代碼維護靈活性及移植性!
題目
System.out.println(a2.show(b));? 結果是“B And A”,為什么不是 “B And B”或“A And A”呢?
已知a2的類型是A,實際對象是B。
那么 a2.show(b) 以根據class A的定義來選擇方法,自然是進入show(A)方法。 正好 B 又覆蓋了 show(A)方法,所以最終執行的是 B.show(A) 方法。
1.為什么用子類對象去實例化接口 是 A a = new B();
原因是面向接口編程,提高代碼維護靈活性及移植性!
題目
System.out.println(a2.show(b));? 結果是“B And A”,為什么不是 “B And B”或“A And A”呢?
已知a2的類型是A,實際對象是B。
那么 a2.show(b) 以根據class A的定義來選擇方法,自然是進入show(A)方法。 正好 B 又覆蓋了 show(A)方法,所以最終執行的是 B.show(A) 方法。