1. 程式人生 > >java 訪問許可權private,預設(預設包許可權),protected(繼承訪問許可權),public的個人理解

java 訪問許可權private,預設(預設包許可權),protected(繼承訪問許可權),public的個人理解


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){

    }
}