1. 程式人生 > >Java的訪問許可權修飾符public、預設(包訪問許可權)、protected、private

Java的訪問許可權修飾符public、預設(包訪問許可權)、protected、private

該筆記主要記錄我對於被Java的四個訪問許可權修飾符所修飾的域和方法在被直接使用(呼叫)、繼承後的直接使用和繼承後的方法覆蓋三方面的認識:

第一,直接使用的情況:
  1.被public修飾的域和方法,不管在所屬類所在的包還是在其他包,都可以被所屬類或者所屬類物件直接訪問。
  2.預設訪問許可權(又叫包訪問許可權)修飾的域或方法,只能在所屬類的包被直接訪問,在其他包不能直接訪問。其訪問的範圍就如它名稱一樣---包訪問許可權,只能在所屬包內訪問。
  3.被protected修飾的域或方法,其直接訪問的範圍與包訪問許可權的一樣,基本沒有差別。
  4.被private修飾的域或方法,只能在自己所屬類才能被直接訪問。而即使另外一個類與其同在一個包中,前者也不能直接訪問。

第二,繼承的使用(呼叫):[非private方法繼承後可直接訪問]
  1.父類中public修飾、預設訪問權修飾和protected修飾的域或方法,可以直接在子類中直接被呼叫(使用)。
  2.父類中private修飾的域或方法,雖然被繼承於子類,但是子類也不能直接訪問,因為其對於子類是隱藏的。

第三,對於繼承類對父類方法覆蓋的情況:[非private方法繼承後可被覆蓋]
  1.父類中public修飾、預設訪問權修飾和protected修飾的方法,在子類都可以被覆蓋。
  2.父類中private修飾的方法,在子類不能被覆蓋,因為private方法被自動認為是final方法(自行了解final方法),對子類是遮蔽的。