java 訪問許可權private,預設(預設包許可權),protected(繼承訪問許可權),public的個人理解
阿新 • • 發佈:2019-02-17
package pack1; /** * Created by Kodulf on 2017/4/5. */ public class FanWenCeShi { /** * * * 私人房間院子內外,家人兄弟遠親近鄰,3210. * private 預設(包訪問許可權) protected(繼承訪問許可權) public * 1: 同一個類中 能 能 能 能 * 2: 同一個包中(有無繼承類都一樣) 不能 能 能 能 * 3: 不同的包中有繼承關係 不能 不能 能 能 * 4: 不同的包中無繼承關係 不能 不能 不能 能 * * 這個和分遺產有點像: * 同一個類,說明是有類似父子的繼承關係,或者是夫妻關係的,同一個包,相當於是一個大家庭的,有兄弟姐妹 * 對於物品,分為了4個型別的: * 保險櫃裡面的,房內的,院子裡面的,院子外面的 * 私有的,預設的,保護的,公開的 * 保險櫃子裡面的東西,只有我的繼承人可以碰 * 房內的東西,家人都可以碰 * 院子裡面的東西,不是本地的家人的,外地的親戚也可以碰, * 院子外面的東西,所有的人都可以碰 * * q1:頂級類的定義只能是public 和預設的 * 如果一個頂級類是private的那麼該類是不能夠訪問的所以不行 * 如果一個頂級類是protected 的那麼該類是不能夠被別的包裡面的進行繼承的,也是不能夠被訪問的(說明3,是不同的包中,有繼承關係的,這裡都不可能去繼承,哪裡來的繼承關係呢?所以不能夠訪問),所以這個相當於就是預設包許可權了,所以就不要使用protected * 類,只可以使用預設的和public 來修飾 * * q2: 還有挎包去訪問的時候為什麼不能夠訪問:就是因為被訪問的類不是public的 * * q3:什麼時候使用protected * protected: * 一般情況下為了實現純粹的封裝用的就是private,而使用protected可以封裝也可以繼承 * 一個比較典型的例子,不知道你學沒學過Android開發(用java的) * 一個介面類需要繼承Activity類,重寫其中onCreate(),onPause(),onDestroy()等方法,這些方法就是protected的,這是為了繼承同時也避免直接呼叫從而混亂應用的執行順序 * @param args * */ public static void main(String[] args){ } }