1. 程式人生 > >JAVA向上轉型後的方法調用問題

JAVA向上轉型後的方法調用問題

向上 base 如果 () 沒有 方法調用 默認 public 訪問

Base b = new Sub ( ) ;
JAVA基類變量接收子類對象的引用後,會向上轉型:

此時:

1、變量 b 默認可以訪問的方法依然是 基類中自身獨有的 public和 protected 方法 ,private 方法不可被外界直接訪問,這點始終不變
【 相當於Base b = new Base() 】

2、Sub 自身獨有而 Base中沒有的方法(無論是public,protected還是private ) ,變量 b 都不可以訪問

3、但如果 Sub有覆蓋Base中的 public或protected方法,那此時變量 b 訪問的將是被 Sub 覆蓋的public和protected方法

【 private方法永遠不能被覆蓋,也無法被外界直接訪問 】

JAVA向上轉型後的方法調用問題