通路修飾符權限
PS 紅色是不可通路
private
在目前類中 main方法之外可以借助名稱使用 在main方法中需要執行個體化對象使用
我們想要在别的類中調用私有成員 就需要建立一個公有的方法 在公有方法中使用這個私有成員 也就是面向對象中的封裝。
在繼承中,私有成員無法被繼承,子類無法使用父類的私有成員。

public:
在目前類中 main方法之外可以借助名稱使用 在main方法中需要執行個體化對象使用
在其他任何地方 都可以執行個體化對象進行通路
在繼承中,被public所修飾的成員能被所有的子類繼承下來并使用。
protected:
同包情況下
在目前類中 main方法之外可以借助名稱使用 在main方法中需要執行個體化對象使用
在同包的其他類中,可以用執行個體化對象通路使用
在同包的子類中,被protected修飾的成員可以被繼承通路,也就是可以執行個體化父類或是子類的對象使用
在同包其他類中,且不是子類,要使用子類的類中,同一個包中,可以使用執行個體化父類或是子類的對象使用
不同包情況下
在不同包的其他類中,不可以用執行個體化對象通路使用
在不同包的其他子類中,被protected修飾的成員可以被繼承通路,但是隻能通過執行個體化子類對象使用。
在不同包的其他類中,且不是子類,要使用子類的類中,是不能通過例化子類對象調用父類的受保護成員的 因為這個時候相當于父類中的受保護成員跨包了。如果想要通過子類對象調用父類的受保護的成員,需要重新覆寫父類的這個成員。
在實際的開發中也許很少用到protected來作通路控制,但是java的這個修飾符設計很巧妙,思想很高。同包中可以看做是public,異包中可以看做private
package/friendly/default
同一包中的所有類都能通路。所修飾的成員隻能被該類所在同一個包中的子類所繼承下來。
别的包中的子類是沒法通路的。
總結